假设我们有一个指数范围为-3,3,精度为4位的归一化浮点数。下面是4个十进制数和相应的二进制表示。如何将这些十进制数转换为二进制数?我知道如何从二进制到十进制,反之亦然。
0.11 (decimal) = 1.000 * 2^-3 (binary)
3.1416 (decimal) = 1.101 * 2^1 (binary)
2.718 (decimal) = 1.011 * 2^1 (binary)
7 (decimal) = 1.110 * 2^2 (binary)
发布于 2018-03-26 12:27:18
从尾数和指数的定义出发。指数是最简单的部分。尾数只不过是两个负幂之和:1+5+1/4+⅛…,其中一些被乘以1,有些-到零。
为了确定指数的值,找出当被除以( [0,1)中的数乘以)到范围[1,2]的值的最大幂。
对于0.11,为-4 (如您所述为非-3 ),为0.11 * 2⁴= 1.76。对于3.1416,它是+1,因为3.1416/2= 1.5708
然后,您将有一个范围内的数字m
[1,2]来转换为二进制分数。从r
= “1”开始。因此,然后从m
中减去1并乘以2。如果结果不止一个,则将"1“写到r
的末尾,从m
中减去1,否则将"0”写到r
的末尾。继续乘以2,并可选择地从m
中减去1,同时将"0“和"1”写入r
,这取决于您是否需要减去1。当你有足够的数字尾数时停止。
我想你可以自己搞清楚如何做自己想要的舍入模式。
https://stackoverflow.com/questions/49490960
复制相似问题