9位浮点数转换

9 digit floating point number conversion

  1. 格式A 有 1 个符号位。 有 k = 5 个指数位。指数偏差为 15。 有 n = 3 个小数位。

那些是特殊的 ieee 参数

二进制数 1 00111 010

经过所有数学运算后我得到 -5/1024

然而,我的好友得到了-704

谁是对的?

正如下面的计算所示,似乎是正确的,正确答案是-5/1024:

Input: 1 00111 010
Mantissa: 1.010 base 2
Exponent: 111 base 2 = 7 base 10; 7 − 15 = -8
De-normalize: 1.010 base 2 × 2^-8 = .00000001010

以下 table 显示了如何将非规范化数字转换为以 10 为底的十进制数:

Exponent |    2^-8    |    2^-9     |    2^-10     |     2^-11     |
Decimal  | 0.00390625 | 0.001953125 | 0.0009765625 | 0.00048828125 |
Bit      |     1      |     0       |      1       |      0        |
Value    | 0.00390625 |     0       | 0.0009765625 |      0        |

Total = 0.00390625 + 0.0009765625 = 0.0048828125

由于设置了符号位,因此必须取反该值。所以最后的结果是-0.0048828125。这等于您最初得到的 -5/1024

这里有一个 link to a great site 显示了如何逐步进行转换。