小数在计算机中的存储形式中指数为什么要加127?

当第一次看小数在计算机中的存储原理时发现卡在算出来的指数为什么要加上127这个问题上了,后面参考了几个篇类似的文章后终于解开疑惑了。

用32位float来说,首先,指数占8位,表示0-255之间的数值,为方便判断指数正负,我们就要用一个中间值127来辅助。比如,8位的指数在内存中存储的值是125,然后读取的时候125-127得到-2,这个-2就是真实的指数值,也就是说内存中存125就对应真实值-2,此时负号就体现出来了;再看正数,如,8位的指数在内存中存储的值是129,然后129-127得到2,2就是129对应的真实值。通过这种方式就可以方便存储数值为-127~128的指数。

接下来我们再看那些文章中举的例子得出的指数,比如19.625 = 10011.101 = 1.0011101 * 2^4,指数为4,这里的4其实就是指真实的指数值,然后4+127得到内存中存的值131,二进制为10000011,所以实际上真实值是4的指数在内存中是这么存的:10000011

总结:8位的指数内存值减去127就得到真实的指数值,反过来真实的指数值加上127就得内存值。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值