当前位置:   article > 正文

32位浮点数转十进制与二进制_32位浮点数转换为十进制数据

32位浮点数转换为十进制数据

 32位浮点数的第一位为S(符号位),代表正负符号。

后面八位代表指数

最后使用23位来代表有效数

那么将浮点数转十进制数计算时可以采用以下公式来计算:

s为0代表正数,s为1代表负数。

e由浮点数转为十进制数时则需要减去127,以便省去指数的正负。也就是说可以表示2^(-127)~2^(128)。e=0和e=255用来表示特殊值。

取127的原因:

1)偏移值为127时,绝对值范围大致是:1.2*10^(-38)~3.4*10^(+38);
2)如果偏移值取为128时, 绝对值范围大致是:5.9*10^(-39)~1.7*10^(+38);
可见偏移值取127时,上下范围基本对称,相对合理点。

有效数区域从左到右依次乘以2^(-1)、2^(-2)……把它们相加就是公式中的f

f在公式中需要加上1,是因为浮点数默认减去了这一部分

IEEE754标准做了这样的规定:当尾数(小数)不为0时,尾数域的最高有效位为1(因为是二进制嘛),这称为浮点数的规格化。规格化后的二进制小数,有了统一的规格,可以发现这样规格化之后,我们只需要存储一个尾数(即小数部分,整数部分恒为1)和指数部分。

浮点数转二进制时,把有效数开头加上1和小数点,公式中2的几次方(e减去127等于几)就把小数点移动几位就行啦,指数是正的话向右移动,指数是负的话向左移动。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/986511
推荐阅读
相关标签
  

闽ICP备14008679号