我正在学习浮点IEEE 754数字的表示,我的教科书说:
要将更多位打包到有效位数中,IEEE 754会使隐含的前导1位标准化二进制数。因此,该数字实际上是24位长,单精度(隐含1和23位分数),53位长双精度(1 + 52)。
我没有得到“隐含”在这里的意思......显式位和隐式位之间的区别是什么?不管他们的标志如何,难道不是所有数字都有位吗?
答案 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是该表示中唯一可用的非零值。因此,对于例如三个基本表示而言,情况并非如此。