bool IsOveflow_uint(unsigned int original, unsigned int add) {
unsigned int before = original;
unsigned int after = before + add;
if((original & 0x80000000) != (after & 0x80000000))
return false;
return true;
}
A
B = A + d
[ signbit(A), signbit(B) ]
[0, 0] -> non-overflow, overflow 모두 가능
00 + 01 -> non-ov
01 + 11 -> ov
[0, 1] -> non-ov
[1, 0] -> ov
[1, 1] -> non-ov, ov 모두 가능
10 + 01 -> non-ov
11 + 11 -> ov
아예 코드 자체가 틀려 먹은거 같은데????
주딱이 달아놓은 A > B 가 골든 정답임. 더했는데 대소가 바뀌었다는건 오버플로우 나서 한 바퀴 돌았다는 것하고 동치임
ㅇㅇ맞다