将0.125转换为7位浮点格式

时间:2014-02-18 07:40:24

标签: c floating-point

   Suppose we have a 7-bit computer that uses IEEE floating-point arithmetic where a 
floating point number has 1 sign bit, 3 exponent bits, and 3 fraction bits. All of the bits in 
the hardware work properly. 

Recall that denormalized numbers will have an exponent of 000, and the bias for a 3-bit 
exponent is 3.

要转换的数字是-0.125

这是我的尝试

转换为二进制形式

0.001

移动小数

0001.0 

所以E = -3,因为我们将小数右移3次

E = e -bias 
-3 = e -3

所以 e = 0 而且M = 0? 这给了我

1 000 000

这是错误的。正确答案应为1 000 100

我做错了什么?

1 个答案:

答案 0 :(得分:3)

偏差为3,因此1.0的指数存储为3.因此要获得1/8,您希望存储零,但这是非正规数的表示。非正规数必须明确存储前导位,因此尾数变为100而不是000。需要存储1导致精度下降,这是非规范化的症状。