指数超过52的所有整数都是64位浮点

时间:2016-09-03 06:39:13

标签: binary ieee-754

我是否正确地得出结论:

  • 64位浮点中指数超过52的所有整数都是偶数?例如,如果指数为53,尾数为0000000000000000000000000000000000000000000000000001,则数字为100000000000000000000000000000000000000000000000000010 - 以10结尾。如果尾数为54,则数字以100结尾。

  • 我们增加指数的次数越多,无法表示的整数越多 - 对于54的指数 - 不可能表示一个数字 - 9007199254740993,其指数为{{ 1}} - 我们无法表示55个数字(因为我们在尾数中有两个位可以包含01,10,11的组合)。

1 个答案:

答案 0 :(得分:2)

  

64位浮点中指数超过52的所有整数都将   是不是?

是。 F64有52个编码的尾数位,加上一个隐含的位。我们正在谈论一个没有偏见的'指数,因此您的值为2^exp*1.mant

想象一下,要将F64转换为整数,尾数将被无偏指数左移。移位52将保证不需要舍入的整数。 53将保证一个偶数,因为你所显示的零移入了。

  

我们增加指数越多,整数就越多   代表

是的,但这比你描述的要快得多。您的示例值只是第一次出现。在范围(2 ^ 53,2 ^ 54)中,只有偶数可以像你所说的那样表示,在F64中只有一半的整数存在,所以在这个范围内所有2 ^ 52个奇数都没有代表。