加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

定点加减运算——溢出检测

(2008-08-25 18:26:05)
标签:

符号位

补码

最高有效位

定点小数

异或门

杂谈

分类: 组成原理

2.2.3 溢出概念与检测方法      file:///I:/Images/Home07.gif

  在定点小数机器中,数的表示范围为||<1. 在运算过程中如出现大于1的现象,称为

“溢出”。在定点机中,正常情况下溢出是不允许的。

file:///I:/Chap02/Images/2.2.3.gif

机器定点小数表示

[例12] =+0.1011, =+0.1001,y。

[解:]

[例13] =-0.1101, =-0.1011,y。

[解:]

  之所以发生错误,是因为运算结果产生了溢出。两个正数相加,结果大于机器所能表示的最大

正数,称为上溢。而两个负数相加,结果小于机器所能表示的最小负数,称为下溢

  为了判断“溢出”是否发生,可采用两种检测的方法。第一种方法是采用双符号位法,这称为

变形补码”或“模4补码”,从而可使模2补码所能表示的数的范围扩大一倍。变形补码定义为

[]

{    20
4+x  0-2
(2.22)

  或用同余式表示为

[]=4+x   (mod 4)

  下式也同样成立: 

[]+[]=[]
(mod 4)

  为了得到两数变形补码之和等于两数之和的变形补码,同样必须:

1. 两个符号位都看作数码一样参加运算

2. 两数进行以4位模的加法,即最高符号位上产生的进位要丢掉。

 

  采用变形补码后,如果两个数相加后,其结果的符号位出现“01”或“10”两种组合时,表示

发生溢出。这是因为两个绝对值小于1的数相加,其结果不会大于或等于2,所以最高符号位永远表

示结果的正确符号。

[14] =+0.1100, =+0.1000,y。

[解:]

[例15] =-0.1100, =-0.1000,求y。

[解:]

 由此可以得出如下结论:

1. 当以模4补码运算,运算结果的二符号位相异时,表示溢出;相同时,表示未溢出。故溢出逻辑

表达式为 VSf1Sf2,其中Sf1Sf2分别为最高符号位和第二符号位。此逻辑表达式可用异或

门实现。

2. 4补码相加的结果,不论溢出与否,最高符号位始终指示正确的符号。  

  第二种溢出检测方法是采用单符号位法。从例1和2中看到,当最高有效位产生进位而符号

位无进位时,产生上溢;当最高有效位无进位而符号位有进位时,产生下溢。故溢出逻辑表达

VCfCo,其中Cf为符号位产生的进位,Co为最高有效位产生的进位。此逻辑表达式也可用

异或门实现。

  在定点机中当运算结果发生溢出时,机器通过逻辑电路自动检查出溢出,并进行中断处理。

  file:///I:/Images/Nextarro.gif

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有