IEEE754 浮点数

Posted leo-skr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IEEE754 浮点数相关的知识,希望对你有一定的参考价值。

1.将十进制数5.75,161.875,-0.0234375转化为IEEE754标准的32浮点数的二进制格式

1、5.75
整数部分
5/2=2 .... 1
2/2=1 .... 0
1/2=0 .... 1
小数部分
0.75·2=1.5 .... 1
0.5·2=1 .... 1
5.75=101.1100000000=1.011100000000·2的2次方
S=0 E=2+127=129 M=011100000000
0 10000001 01110000000000000000000
结果:
符号位(S) =0
阶码(E)=10000001
尾数(M)=01110000000000000000000
2、161.875
整数部分
161/2=80 .... 1
80/2=40 .... 0
40/2=20 .... 0
20/2=10 .... 0
10/2=5 .... 0
5/2=2 .... 1
2/2=1 .... 0
1/2=0 .... 1
小数部分
0.875·2=1.75 .... 1
0.75·2=1.5 .... 1
0.5·2=1 .... 1
161.875=10100001.1110000000=1.01000011110000000·2的7次方
S=0 E=7+127=134 M=01000011110000000
0 10000110 01000011110000000000000
结果:
符号位(S) =0
阶码(E)=10000110
尾数(M)=01000011110000000000000
3、-0.0234375
整数部分
0
小数部分
0.0234375·2=0.046875 .... 0
0.046875·2=0.09375 .... 0
0.09375·2=0.1875 .... 0
0.1875·2=0.375 .... 0
0.375·2=0.75 .... 0
0.75·2=1.5 .... 1
0.5·2=1 .... 1
-0.0234375=-0.0000011=-1.1000000000·2的-6次方
S=1 E=121 M=1000000000
1 01111001 10000000000000000000000
结果:
符号位(S) =1
阶码(E)=01111001
尾数(M)=10000000000000000000000

经http://www.weitz.de/ieee/验证,三个转化均正确。

2.使用python 实现类http://www.weitz.de/ieee/的浮点数转换功能

技术图片
技术图片
技术图片
参考资料:
在线转码工具在线IEEE754转码工具
Python代码参考Python实现十进制小数转IEEE754单精度浮点数转换

以上是关于IEEE754 浮点数的主要内容,如果未能解决你的问题,请参考以下文章

由IEEE 754深入理解浮点数

IEEE754是啥

浮点数 (IEEE-754)

IEEE 754 浮点数的表示精度探讨

关于IEEE754标准浮点数阶码的移码

IEEE754 浮点数