将小数部分转换为浮点二进制表示

时间:2018-03-26 12:00:18

标签: algorithm decimal ieee-754

假设我们已经归一化了浮点数,其指数范围为[-3,3],精度为4位。下面你会看到4个十进制数字和相应的二进制表示。如何将这些十进制数转换为二进制数?我知道如何从二进制到十进制,但反之亦然。

%3A

1 个答案:

答案 0 :(得分:1)

从尾数和指数的定义中删除。指数是最容易的部分。尾数只不过是两个负幂的总和:1 +½+¼+⅛...,其中一些乘以一,有些 - 为零。

要确定指数的值,找到2的最大幂,当被分割(乘以[0,1)中的数字时),得到范围[1,2]中的值。

对于0.11,它是-4(不是-3,如你所述),为0.11 *2⁴= 1.76。 对于3.1416,它是+1,因为3.1416 /2¹= 1.5708

然后你会在范围[1,2]中有一个数字m来转换为二进制分数。从r =“1开始结果,然后从m中减去1并将其乘以2。 如果结果不止一个,请将“1”写入r的末尾并从m中减去1,否则将“0”写入r的末尾。继续乘以2并可选地从m中减去1,同时将“0”和“1”写入r,具体取决于您是否必须减1。当尾数中有足够的数字时停止。

我想你可以自己弄清楚如何进行所需的舍入模式。

相关问题