首页 理论教育 计算机组成原理中的溢出检测方法

计算机组成原理中的溢出检测方法

时间:2023-10-31 理论教育 版权反馈
【摘要】:若两数进行加减运算的结果超出给定的取值范围,就称为溢出。当计算过程中出现溢出时,要停止运算,进行相应的溢出处理。为了判断“溢出”是否发生,可采用两种检测方法。

计算机组成原理中的溢出检测方法

由于计算机的字长是固定的,因此,计算机中数的表示范围(允许取值范围)是有限的。若两数进行加减运算的结果超出给定的取值范围,就称为溢出。当计算过程中出现溢出时,要停止运算,进行相应的溢出处理。

例2-15:x=+0.1011,y=+0.1001,求x+y=?

解:[x]=01011000,[y]=01001000

[x+y]=10100000

x+y=-0.11

两个正数相加的结果成为负数,这显然是错误的。

为了判断“溢出”是否发生,可采用两种检测方法。

1.单符号位检测方法

判别溢出的方法是:用符号位的进位与最高有效位的进位的异或来检测,若异或的结果是1,则溢出;若结果是0,则没有溢出。

例2-16:x=+0.1001,y=+0.1110,用补码运算x+y,并判断是否溢出。(www.xing528.com)

解:[x]=01001000,[y]=01110000

[x+y]=10111000

符号位的进位是0,最高有效位的进位是1,异或结果是1,表示溢出。

2.变形补码检测方法

变形补码检测方法(也称为双符号位检测方法)是:每个操作数在运算时都采用两个符号位,正数用00表示,负数用11表示,两个符号位与数值位一起参加运算,若运算结果的两个符号位的代码不一致时表示溢出;两个符号位的代码一致时,表示没有溢出。

例2-17:x=+0.1011,y=+0.1101,用变形补码求x+y,并判断是否溢出。

解:[x]=00 101100,[y]=00 110100

[x+y]=01 100000

符号位的代码为01,表示运算结果溢出。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈