+13+(-10)是溢出
要运算的结果大于数值设备所能表示数的范围,就会产生溢出.
如何判断补码溢出:
可以通过最高位与次高位进位来判断:若最高数值位向符号位的进位值与符号位产生的进位输出值不相同,则表明加减运算产生了溢出.
溢出现象应当作一种故障来处理,因为它使结果数发生错误.异号两数相加时,实际是两数的绝对值相减,不可能产生溢出,但有可能出现正常进位;同号两数相加时,实际上是两数的绝对值相加,既可能产生溢出,也可能出现正常进位.由于补码运算存在符号位进位自然丢失而运算结果正确的问题,因此,应区分补码的溢出与正常进位.
只有有符号数存在溢出,无符号数不存在溢出~
13+(-10),都变换成补码,之后再相加。
+13 的补码 = 0000 1101。
- 10 的补码 = 1111 0110。
相加得:(1)0000 0011。
括号中的 1,是符号位的进位,并没有数字的意义,抛弃即可。
正数加负数,是绝不会溢出的。