溢出判断:
例如:
(下图的数轴为补码及其对应的真值)
例如,2 + 2,补码相加为010 + 010 = 100,其真值为-4,发生上溢。
那么计算机是如何判断溢出的呢?
(图中A、B为二进制数码)
该表达式的本质:负 + 负 = 正 (或) 正 + 正 = 负
下图展示了何为符号位的进位和最高数值位的进位:
结果的双符号位中高位表示原本应该得出的正确符号,低位表示实际得出的符号。
正确的符号为正号,但实际为负号,即为下溢;
正确的符号为负号,但实际为正号,即为上溢。
为什么是这样命名的呢?
例如:二进制数(11,110110)逗号前符号位的模从高位到低位分别为21、20,此时如果再进高位就是22,即为4,所以此时计算机就相当于进行着模4运算,即把位权小于4的部分保留,而位权大于4的部分全部舍弃。