floating-point - IEEE-754 double float 可以表示多少个可被 2 整除的整数?

标签 floating-point ieee-754

IEEE-754 double float 可以表示多少个可被 2 整除的正整数?

最佳答案

-254 和 254 之间的所有偶数都可表示为 IEEE 754 double 。所有大于 254 的有限 double 也恰好是应该计数的偶数整数。我们分别统计这两类数字,然后将计数相加。

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

第二类代表数字,例如 254+4、254+8,以及非常大的 double 字,例如 21023 。这些数字是 IEEE 754 double 字,表示偶数,因此应将其考虑在内。 该类别中的数字必须单独计数的原因是,在此范围内,并非所有偶数都可以表示为 double IEEE 754 数字(例如,254+2、2< support>54+6,可以表示 21023+1024)。


第一类数字包含 2 * 253 - 1 项,从 -(254-2) 到 254- 2.

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

这总共大约有 8754997675608244224 个 double 偶数整数(在计算中会产生小一误差)。

关于floating-point - IEEE-754 double float 可以表示多少个可被 2 整除的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25802657/

相关文章:

java - 如果 float 仅包含整数值,我们能否保证比较 float 与 == 是安全的?

c - 获取 unsigned int 或 float 的(float 的)尾数 (C)

floating-point - 确定 C/C++ 中的浮点运算是否发生舍入

java - 如何 HALF_DOWN 浮点值,例如将 4.8 转换为 4.5?

c - 如何将带小数点的有符号数解释为 C 代码中的实际值(256 -> 4)

c - C 中 float 组的异或加密

mysql - MySQL如何进行浮点加法的数学计算?

c - 为什么 frexp() 不产生科学记数法?

algorithm - 为什么这个指数在这个例子中以这种方式计算?

java - 在 Java 的双重算术中得到错误的答案