代码之家  ›  专栏  ›  技术社区  ›  syntagma

在IEEE-754浮点中,有多少可被2整除的整数可以用双精度表示?

  •  2
  • syntagma  · 技术社区  · 10 年前

    在IEEE-754浮点中,可以(可以)用双精度表示多少个可被2整除的正整数?

    1 回复  |  直到 10 年前
        1
  •  2
  •   Pascal Cuoq    10 年前

    所有介于-2之间的偶数 54 和2 54 可表示为IEEE 754双精度数字。所有大小大于2的有限双精度数 54 也恰好是应该计数的偶数。我们分别计算这两类数字,然后相加。

    第一类代表所有数字-(2 54 -2), -(2 54 -4), -2, 0, 2, 4, (2 54 -2).

    第二类代表数字,如2 54 +4, 2 54 +8,以及非常大的双精度数字,如2 1023 这些数字是表示偶数的IEEE 754双精度数字,因此应考虑它们。 这一类别中的数字必须单独计数的原因是,在此范围内,并非所有偶数都可以表示为双精度IEEE 754数字(例如,2 54 +2, 2 54 +6和2 1023 +1024是可表示的)。


    第一类数字包含2*2 53 -1项,来自-(2 54 -2) 至2 54 -2.

    第二类代表2*(1024-54) binades (因子2是因为负二进制数和正二进制数都被计数),即2*(1024-54)*2 52 项目。

    这使得总计约8754997675608244224个双精度偶数整数(计算中给出或减去一个误差)。