浮点数:“有效数字中前导1是'隐含'。” - ......嗯?

时间:2011-02-08 06:36:01

标签: ieee-754

我正在学习浮点IEEE 754数字的表示,我的教科书说:

  

要将更多位打包到有效位数中,IEEE 754会使隐含的前导1位标准化二进制数。因此,该数字实际上是24位长,单精度(隐含1和23位分数),53位长双精度(1 + 52)。

我没有得到“隐含”在这里的意思......显式位和隐式位之间的区别是什么?不管他们的标志如何,难道不是所有数字都有位吗?

3 个答案:

答案 0 :(得分:13)

是的,所有标准化数字(除了零之外)都将该位设置为一个(a),因此它们使其隐含以防止浪费空间存储它。

换句话说,他们完全保存了这一点,并重复使用它,以便它可以用来提高数字的精确度。

请记住,这是分数的第一位,不是二进制模式的第一位。二进制模式的第一位是符号,后跟几位指数,后跟分数本身。

例如,单个精度数是(符号,指数,分数):

<1>  <--8--->  <---------23---------->  <- bit widths
 s   eeeeeeee  fffffffffffffffffffffff

如果你看一下计算数字的方式,那就是:

(-1)sign x 1.fraction x 2exponent-bias

因此,用于计算该值的小数部分为1.fffff...fff(二进制)。


(a)实际上有一类数字(非规范化的和零),该属性保持为真。这些数字的偏差指数均为零,但绝大多数数字都遵循该规则。

答案 1 :(得分:6)

他们在说什么。第一个非零位总是为1.因此,二进制表示不需要包含该位,因为您知道它是什么。所以他们没有。他们告诉你第一个是哪里,然后他们给它后面的位。所以有一个1在二进制表示中没有显式,其位置是隐含的,因为它们告诉你它在哪里。

答案 2 :(得分:1)

注意我们正在处理数字的二进制表示可能也会有所帮助。归一化二进制数的第一个数字(即没有前导零)必须为1的原因是1是该表示中唯一可用的非零值。因此,对于例如三个基本表示而言,情况并非如此。