3 回答
TA贡献1951条经验 获得超3个赞
我认为图表不是一个正确的百分比。
浮点数存储在内存中,如下所示:
它们被分解为:
符号s(表示它是正还是负) - 1位
尾数m(基本上是你的数字的数字 - 24位
指数e- 7位
然后,您可以将任何数字写x为s * m * 2^ewhere ^表示取幂。
5.2应表示如下:
0 10000001 01001100110011001100110
S E M
S=0 表示它是正数,即 s=+1
E将被解释为无符号数,从而表示129。请注意,您必须从中减去127 E以获得原始指数e = E - 127 = 2
M必须按以下方式解释:它被解释为以a开头,1后跟一个point(.),然后是该点之后的数字。后面的数字.是实际编码的数字m。我们为每个数字引入权重:
bits in M: 0 1 0 0 1 ...
weight: 0.5 0.25 0.125 0.0625 0.03125 ... (take the half of the previous in each step)
现在总结相应位设置的权重。完成此操作后,添加1(由于IEEE标准中的规范化,您总是为解释添加1 M)并获取原始数据m。
现在,您计算x = s * m * 2^e并获取原始数字。
因此,唯一剩下的就是在实际内存中,字节可能是相反的顺序。这就是为什么数字可能不会存储如下:
0 10000001 01001100110011001100110
S E M
但更多的是相反(简单地采取8位块并镜像他们的顺序)
01100110 01100110 10100110 01000000
MMMMMMMM MMMMMMMM EMMMMMMM SEEEEEEE
- 3 回答
- 0 关注
- 451 浏览
添加回答
举报