IEEE754浮点数标准
这里只讲32位单精度
S——尾数符号,0正1负;
M——尾数, 纯小数表示, 小数点放在尾数域的最前面。 一般采用原码或补码表示。
E——阶码,采用“移码”表示; 阶符采用隐含方式,即采用“移码”方法来表示正负指数
-
32位浮点数 一个规格化的32位浮点数x的真值为:
-
一个非规格化(E=0且M≠0)的32位浮点数x的真值为:
重点看红色标记部分
规格化数
- 定义:以标准形式表示的数。
- 作用:能更有效地利用存储空间,提高精度,表示范围更广。
非规格化数
- 定义:接近零的数,没有标准形式。
- 作用:允许表示非常小的数,避免下溢问题,确保数值计算的连续性。
以下是整个过成
例:将十进制数20.59375转换成32位浮点数的二进制格式来存储。
首先分别将整数和分数部分转换成二进制数:
20.59375=10100.10011
然后移动小数点,使其在第1,2位之间,即:
10100.10011=1.010010011×2(4次方) e=4
S=0,M=010010011
∵ e =E – 127,∴ E=4+127=131=1000,0011
最后得到32位浮点数的二进制存储格式为:
0100,0001,1010,0100,1100,0000,0000,0000= 41A4C000H
例:若单精度浮点数N的IEEE754格式为41360000H,求其32位浮点数的十进制值。
将N展开成二进制: 0100,0001,0011,0110,0000,0000,0000,0000
数符:0; 阶码:1000,0010
尾数:011,0110,0000,0000,0000,0000
指数e=阶码-127=10000010-01111111 =00000011=(3)10 包括隐藏位1的尾数:
1.M=1.011 0110 0000 0000 0000 0000=1.011011
则: N=(-1)s×1.M×2e =+(1.011011)×23
=+1011.011=(11.375)10
重点前面的基础要牢固:https://blog.csdn.net/m0_72827793/article/details/142264826?spm=1001.2014.3001.5501