为什么IEE754标准中,32位浮点数的指数转换为阶码时需要加上数值为127的偏移量?

为什么IEE754标准中,32位浮点数的指数转换为阶码时需要加上数值为127的偏移量?

作为计算机专业的科班生,学到计算机组成原理这门课,最开始一直有一个问题困扰着我,为什么IEE754标准中,32位浮点数的指数转换为阶码时需要加上数值为127的偏移量?书上的解释模拟两可,读了几遍还是一头雾水。查阅了一些网上的资料,总算是对这个问题有了一个初步的认识。

一句话解释:为了浮点数表示范围的对称性

那么这个结论是怎么得出来的呢?

首先,我们需要明白为什么阶码采用移码表示?

我们先来看看移码的大致表示范围。
在这里插入图片描述
可以看出来,移码数值的大小直接反映了对应的真值的大小。所以指数采用移码表示,可以直接看出指数的大小,省去了对符号位0和1的分辨。当然采用移码表示还有其他的好处,这里不做深入的探讨。

为什么不是128?

其次,我们应该都知道,对于n位数,如果要转换为移码,需要加上一个固定值2n,n=数值位的位数。32为浮点数有八位阶码,除去符号位,数值位为7位,所以,应该加上27=128。 8位移码的表示范围即为0-255(注意上图的范围是真值得到范围),对应的真值范围即减去128,为-128~+127。

这里需要再除去两种特殊情况,即当移码全为0,对应真值-128和移码全为1,对应真值+127。前者当尾数全为0时,浮点数表示0,又因为符号位S,会有正0和负0之分。后者当尾数全为1时,浮点数表示无穷,又因为符号位S,会有正无穷和负无穷之分。除去特殊情况后,对应的真值范围为-127~+126.
对应的浮点数表示范围为:
在这里插入图片描述
显然这个范围在指数层面是不够对称的。

而当偏移量为127时,除去特殊情况后,对应的真值范围为-126~+127

对应的浮点数表示范围
在这里插入图片描述
显然这样的表示范围更加对称。问题也就有了答案。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值