浮点数的二进制表示学习笔记(6)
发布时间:2021-06-10
发布时间:2021-06-10
浮点数的二进制表示
例七:
(逆向求十进制整数)一个浮点二进制数手工转换成十进制数的例子: 假设浮点二进制数是 1011 1101 0100 0000 0000 0000 0000 0000 按
1
,
8
,
23
位
分
成
三
段
:
1 01111010 10000000000000000000000
最后一段是尾数。前面加上"1.", 就是 1.10000000000000000000000 下面确定小数点位置。由E = e-Bias,阶码E是01111010,加上00000101才是01111111
(
127
)
,
所以他减去127的偏移量得e=-5。(或者化成十进制得122,122-127=-5)。 因此尾数1.10(后面的0不写了)是小数点右移5位的结果。要复原它就要左移
5
位小数点,得
0.0000110, 即十进制的
0.046875 。
最后是符号:1代表负数,所以最后的结果是 -0.046875 。
注意:其他机器的浮点数表示方法可能与此不同. 不能任意移植。
再看一例(类似例七): 比如:53004d3e 二进制表示为:
01010011000000000100110100111110
按照1个符号 8个指数 23个小数位划分 0 10100110 00000000100110100111110 正确的结果转出来应该是551051722752.0 该怎么算?
好,我们根据IEEE的浮点数表示规则划分,得到这个浮点数的小数位是:
00000000100110100111110