논리설계 수업시간에서.. CPU 는 a>b를 a-b를 한 뒤, Overflow의 flag와 음수의 flag가 같을때 a>b라고 판단한다고 하더라구요.
그렇다면, CPU가 3-bit의 Signed number만 담고있다고 생각해보면
-1 > -8 은 어떻게 true인줄 아는건가요??
애초에 음.. -1 - (-8) 이 정의 될수가 있나요...? -1 + 8 로 치환이 안될것같은데 말입니다...ㅠㅠ
( 8은 3bit signed number의 범위를 초과한다고 생각해서 말이여요..!)
어떻게 -1 > -8 을 판단하는걸까요??
32bit integer의 경우엔..
int b =-2147483648;
int a = -1;
printf("%d %d\n", a > b,a-b);
가 어떻게 되는지랑 비슷한 질문이겠네요..!!! (a-b는 Overflow가 나는것같고, a-b의 결과는 양수인데.. 어째서 a>b인걸까요?)