我不确定如何解决这个问题。
我知道IEEE 754无法表示的最小整数是2^(mantissa+1) + 1
,但我如何获取该信息并将其更改为偶数?
我已经考虑过最大化尾数位然后缩放2倍,但这是正确的吗?
答案 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'