计算机组成原理

浮点加法减法运算

浮点数的加减法运算

浮点加减运算
在计算机中,加减法运算用补码实现。
两个浮点数如果要进行加减法运算,它们的阶或者指数必须相等。


一、对阶
求阶差
如果把阶码大的向阶码小的看齐,就要把阶码大的数的尾数部分左移,阶码减小。这个操作有可能在移位过程中把尾数的高位部分移掉,这样就引发了数据的错误,所以,尾数左移在计算机运算中不可取。
如果把阶码小的向阶码大的看齐,在移位过程中如果发生数据丢失,也是最右边的数据位发生丢失,最右边的数据位丢失,只会影响数据的精度,不会影响数据的大小。
在计算机中,采用小阶向大阶看齐的方法,实现对阶。
二、 尾数求和
补码加法

三、规格化
提高浮点数的表示精度,把计算机的提供的能够表示数据的硬件资源尽可能有效的利用起来。


左规
尾数左移一位,阶码减1,直到数符和第一数位不同为止(机器数表示方式是补码)。
右规(尾数的绝对值太大时,右规)
尾数右移一位,阶码加1。
当尾数溢出( >1 )时,需要右规。
是否溢出,可以通过两位的符号位得出:
即尾数出现01.xx…xx或10.xx…xx(两位符号位不同)
四、舍入
舍入,是指数据的长度超过了计算机当中存储数据的物理器件所保存的数据长度。低位部分就要进行处理,保证数据能够以比较精确的精度保存在计算机当中。

在对阶和右规过程中,可能出现尾数末位丢失,引起误差。为了尽可能减小误差,就需要考虑舍入。

舍入的方法:

截断法
将移出的数据一律舍去。该方法简单,很常用。但是影响精度。

0舍1入法
移掉的是1,则尾数末尾加1,移掉的是0,就不加。

例题:如果采用0舍1入法进行舍入处理,则0.01010110011舍去最后一位后,结果为()。
A.0.0101011001
B.0.0101011010
C.0.0101011011
D.0.0101011100
分析:0舍1入就相当于十进制舍入方法中的4舍5入,当这个数舍去最后一位时,这个数如果是0就写0,
如果是1,那么尾数末尾加一。即B.0.0101011010

(末位)恒置“1”法
将要保留的末位数据恒置1,无论右移掉的是1还是0,末位是1还是0。
五、溢出判断


例题1:x=0.1101✖201 ; y=(-0.1010)✖211。求x+y
解:先写出x和y的补码表示形式
[x]补码=00,01;00.1101
[y]补码=00,11;11.0110

对阶

①求阶差:

11,10转化成十进制数→(-2)
所以根据小阶向大阶看齐,x的阶码向y的阶码看齐,并且x的阶码要加2,尾数要右移2位。
②对阶
对阶后的[x]补’=00,11;00.0011

尾数求和


规格化
[x+y]补的尾数是11.1001,符号位是1,尾数的最高位也是1,补码形式表示。
采用左规的方式,使数据规格化:把尾数左移一位,同时阶码减一。
左规之后的数据:00,10;11.0010
得到结果为:x+y=(-0.1110)✖210

步骤:

  1. 操作数检查,检查操作数是否为0。
  2. 比较阶码大小并完成对阶。
  3. 尾数加减运算。
  4. 结果规格化。

溢出判断

阶码溢出是真的溢出

阶码上溢表示数字接近无穷(正无穷或负无穷)

阶码下溢表示数据无限趋近零

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值