
根據等式(2-14)
假如w = 4 數值範圍在-8 ~ 7之間 2^w = 16
x = 5, y = 4的情況下面
x + y = 9 >=2 ^(w-1) 屬于第一種情況
sum = x + y = 9- 2^w = –7
sum – x == y?
-7 – 4 = – 11 屬于第三種情況 負溢出
sum – x = –7 - 4= –11 + 2^w = 5 = y?
明顯是等于的
同樣
sum- y = x ?
-7 – 5 = –12 + 2^w = 4 = x?
是以溢出的情況下面根本判斷不到。
判斷有沒有溢出的情況 就判斷有沒有正溢出和負溢出
怎麼判斷?
x + y >= 2 ^ (w-1) 正溢出
0 + x + y >= 2^(w-1)
0 >= 2^(w-1) – x – y 成立就是正溢出了
0 + x + y < - 2 ^ (w-1) 負溢出
0 < –2^(w-1) – x – y 成立就是負溢出了
是以我的答案是:
沒有C環境不知道行不行, 如有不對請求指出