为了判断“溢出”是否发生,可使用“双符号位法”来判断是否溢出,使用双符号位法需要遵循以下两个规则:
1)两个符号位都看做数码一样参加运算;
2)两数进行以2^n+2为模的加法,即最高符号位上产生的进位要丢掉;
具体使用方法:
1)x=+1100, y=+1000, 求x+y
解答:
x补=001100
y补=001100
x补+y补=010100
结论:两个符号位出现01,表示正溢出
2)x=-1100, y=-1000, 求x+y
解答:
x补=110100
y补=111000
x补+y补=101100(最高符号位进位已扔掉)
结论:两符号位出现10,表示负溢出