天天看點

CSAPP 讀書筆記 - 2.31練習題

CSAPP 讀書筆記 - 2.31練習題

根據等式(2-14)

CSAPP 讀書筆記 - 2.31練習題

假如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環境不知道行不行, 如有不對請求指出

繼續閱讀