第一个(最小的)偶数用IEEE 754浮点数无法表示?

时间:2015-11-08 23:58:55

标签: floating-point precision ieee-754

我不确定如何解决这个问题。

我知道IEEE 754无法表示的最小整数是2^(mantissa+1) + 1,但我如何获取该信息并将其更改为偶数?

我已经考虑过最大化尾数位然后缩放2倍,但这是正确的吗?

1 个答案:

答案 0 :(得分:0)

仅向2 ** (num_mantissa_bits)添加2是不够的,因为尾数中的最后一位将完全代表您添加的两位。

相反,请计算2 ** (num_mantissa_bits + 1) + 2

这是一个使所有位可见的Python会话:

>>> (2.0 ** 53).hex()
'0x1.0000000000000p+53'
>>> (2.0 ** 53 + 2.0).hex()
'0x1.0000000000001p+53'
>>> (2.0 ** 54).hex()
'0x1.0000000000000p+54'
>>> (2.0 ** 54 + 2.0).hex()
'0x1.0000000000000p+54'