int sum = x+y return (sum-x == y ) && (sum-y == x) 이거로 오버플로우 검증 못하는 이유가 뭔지 모르겟슴다... - dc official App
게이야 signed integer 오버플로우는 ub다
UB면 어떤식으로 되는건가요?? - dc App
모르니까 ub야
그렇군여 감사합니다 ㅎㅎ - dc App
이미 오버플로우 됐는데 어떻게 계산함 - dc App
답지는 두 식의 값이 항상 y, x로 나와서 검증이 안된다고 돼있어서 ㅠㅠ 헷갈립니다 - dc App
UB라서 그거 보장 안된다 책 갖다버려라
CSAPP인데 버려야돼나요 ㅠㅠ 좋대서 샀는데... - dc App
csapp에 그런 내용이 나왔나? unsigned 아니야?
2.31번이에용 - dc App
그 문제 다시 찾아봄. c 표준에선 ub가 맞는데 x86에선 아님. 저 코드를 써서 오버플로우를 검증 못하는 counterexample이 뭐냐면 tadd_ok(2^31 - 1, 1) 랑 tadd_ok(-2^31, -1) 임
감사합니다 ㅎㅎ 다시한번 볼게용 - dc App
오버플로우된거 다시 빼봐야 언더플로우 날건데
ㅠㅠ 어렵슴다 - dc App
더하고 빼면 오버플로우가 나던 안나던 그대로임
sum을 이미 오버플로우된 값으로 계산하는게 아니라 2번째줄 수식에서 x+y-x 혹은 x+y-y로 계산하는건가요? - dc App
바이트라고 생각하면 x=126 y=2 sum=-128 sum-y = -128-2 = 126 아님?
아하 감사합니다 ㅎㅎ - dc App