标志CF和溢出标志OF"/>
进位/借位标志CF和溢出标志OF
溢出概念与判别方法
什么是溢出?
溢出是指运算结果超过了数的表示范围。通常,称大于机器所能表示的最大正数为上溢,小于机器所能表示的最小负数为下溢。
计算机使用固定长度的机器数来表示数的,其所能表示的范围是有限的。运算结果超过了这个范围就溢出了。
什么情况下会溢出?
两正数相加(或正数减负数)可能产生上溢;两负数相加(或负数减正数)可能产生下溢。
补码定点数加/减运算溢出判断
补码减法也是用加法器实现的,因此,补码加/减运算最后都可以转化为A补+B补。
加法溢出的情况是:正数+正数可能。产生溢出(上溢),负数+负数可能产生溢出(溢出)
(1)采用一位符号位
A补,B补的符号相同,结果与它们不同,则结果溢出。
解释:补码加法时,符号位与数值位一起参加运算,如果结果超过正数范围(如0111,超过这个最大正数,机器数就往1000、1001...这个方向)符号位会变成1,下溢也是同理(超过1111,机器数会往0000、0001...,符号位变为0)
(2)采用双符号位
结果符号S1S2= 00结果为正,无溢出;
01表示结果正溢出;
10表示结果负溢出;
11结果为负数,无溢出
(3)采用一位符号位根据数据位的进位情况判断溢出
符号位的进位与最高数据位的进位相同,则说明没有溢出,否则发生溢出。
解释:
加法符号位有几种种情况:
0+0=0(数据位和符号位均没进位,没溢出);0+0=1(符号位没进位,数据位进1位,溢出,上溢);
0+1=1(符号位和数据位均没进位,没溢出);0+1=0(符号位和数据位均进位,没溢出);
1+1=1(数据位和符号位均进1位,没溢出);1+1=0(符号位进1位,数据位没进位,溢出,下溢)
综上,溢出的充要条件是符号位进位与数据位进位不同
溢出标志OF
OF=1表示溢出,OF=0表示没溢出
进位/借位标志CF
CF=1表示最高位向前有进位或游位,CF=0表示最高位没有向前进位或游位。
更多推荐
进位/借位标志CF和溢出标志OF
发布评论