感觉这部分有点难,所以稍微整理记一下。

抱歉中英混合,来回切换输入法真的很折磨人。

负溢出

正常

正溢出

以4位补码加法为例,理解下表(书中P64)
补码最大值Tmax = 2^3 - 1 = 7, 补码最小值Tmin = -2^3 = -8
|----|----|-----------|-----------------|--------------|------|
| x | y | z = x + y | z' = z mod 2^4 | z''=U2Tw(z') | 溢出情况 |
| -8 | -5 | -13 | Tmin< 3 <Tmax | 3 | 负溢出 |
| -8 | -8 | -16 | Tmin< 0 <Tmax | 0 | 负溢出 |
| -8 | 5 | -3 | 13 > Tmax | -3(13-16) | 正常 |
| 2 | 5 | 7 | Tmin< 7 <Tmax | 7 | 正常 |
| 5 | 5 | 10 | 10 > Tmax | -6(10-16) | 正溢出 |
有不正确的地方,请多多指教。