首页 文章

浮点:“前导1在有效数字中是'implicit' . ” - 是啊?

提问于
浏览
17

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

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

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

3 回答

  • 12

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

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

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

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

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

    如果你看看数字的计算方式,它是:

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

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


    (a)实际上存在一类数字(非规范化的数字和零),该属性不适用于该数字 . 这些数字的偏差指数均为零,但绝大多数数字都遵循该规则 .

  • 1

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

  • 6

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

相关问题