浮点数加减运算的结果规格化处理

一.对运算结果进行规格化处理

规格化:最高位与符号位相反
(1)先判断结果是不是规格化,如果不是则执行如下操作

      (2)若结果的符号位为11或00,则进行左规,即尾数左移或小数点右移,阶码在原有基础上减去移动位数;
      (3)若结果的符号位为10或01,则进行右规,即尾数右移或小数点左移,阶码在原有基础上加上移动位数。

二.例题分析

例题1:

x = 2^011*(0.100101),
y = 2^-010*(-0.011110)

将阶码的符号用双符号位表示,并进行求补操作:
[x]浮 = 11101,0.100101,
[y]浮 = 11110,-0.011110

作差比较,进行对阶操作(小阶对大阶):
Ex-Ey = 11101+00010=11111
差为负值,说明y的阶码是大阶,故将x的尾数右移(即小数点向左移动)进行对阶:
[x]浮 = 11110,0.010010(1)

故:(尾数补数的加法)
x+y =
      0 0. 0 1 0 0 1 0 (1)
  +  1 1. 1 0 0 0 1 0
      1 1. 1 1 0 1 0 0 (1)

规格化处理:1.010010(尾数左移两位,即小数点右移两位)
阶码的补码: 11100

x+y= 2^-4 * 1.010010
即x+y= 2^-100*(-0.101110)

分析:本来结果为1 1. 1 1 0 1 0 0 (1),但是11为符号位,1为最高位,与要求不符合,根据要求(2)需要左规,则小数点右移,则变为11.101001,11为符号位,1为最高位,与要求不符合,根据要求(2)需要左规,变为1.010010,符合要求,此时结果规格化。

例题2:
x = 2^011*(0.100101),
y = 2^-010*(-0.011110) ,
-y= 2^-010*(0.011110) ,

x-y =(尾数补码的减法)
       0 0. 0 1 0 0 1 0 (1)
  +   0 0. 0 1 1 1 1 0
       0 0 1 1 0 0 0 0 (1)

规格化处理: 0.110000 阶码 11110

x-y=2^-2*0.110001

分析:通过要求分析,结果已经是规格化。

  • 10
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值