㈠ 溢出概念
在定点整数机器中,数的范围小于2∧n-1。在定点整数运算过程中如出现大于字长绝对值的现象称为“溢出”。
☞注:在定点机中出现溢出时其结果是不正确的,故运算器必须能检测出溢出。
例1:x=+1011,y=+1001,求x+y。
解 : [x]补=01011,[y]补=01001
[x]补 01011
+ [y]补 01001
—————————
[x+y]补 10100
即 x+y=10100=-0100,这样两正数相加结果是负数,显然是错误的。☜
例2:x=-1101,y=-1011,求x+y。
解 :[x]补=10011,[y]补=10101
[x]补 10011
+ [y]补 10101
——————————
[x+y]补 01000
即x+y=01000=+1000,两负数相加结果是正数,同样是错误的。☜
由上面两个例子,得出结论:
☞两个正数相加,结果大于机器字长所能表示的最大正数,称为正溢。
☞两个负数相加,结果小于机器所能表示的最小负数,称为负溢。
※ ㈡检测溢出的方法
①采用双符号位法,又称为“变形补码”
☞遵循规则:
1.两个符号位都看作数码一样参加运算;
2.两数进行以2∧n+2为模的加法