5.2.2溢出及补码溢出的判断无论采用何种机器数,只要运算的结果大于数值设备所能表示数的范围,就会产生溢出.溢出现象应当作一种故障来处理,因为它使结果数发生错误.异号两数相加时,实际是两数的绝对值相减,不可能产生溢出,但有可能出现正常进位;同号两数相加时,实际上是两数的绝对值相加,既可能产生溢出,也可能出现正常进位.由于补码运算存在符号位进位自然丢失而运算结果正确的问题,因此,应区分补码的溢出与正常进位.[例5]某数字设备用五位二进制表示数,计算(1)9+3(2)-9-3(3)9+12(4)-9-12(1)[+9]补+[+3]补=01001+00011=01100=+12正确;(2)[-9]补+[-3]补=10111+11101=110100=10100(符号位进位自然丢失),其真值为-1100=-12正确;(3)[+9]补+[12]补=01001+01100=10101其真值为-1011=-11错误,产生了溢出;(4)[-9]补+[-12]补=10111+10100=101011其真值为01011=+11错误,产生了溢出.(1)、(2)两题结果均正确,查其最高位和次高位的进位位,不是均无进位产生,就是均产生进位;(3)、(4)两题结果均错误,查其最高位和次高位的进位位,只有一位产生了进位.此即为判断机器是正常进位还是溢出的基本依据,在微型机中可用异或电路来实现上述的判断.