【发布时间】:2016-02-09 14:10:45
【问题描述】:
我不确定如何解决这个问题。
我知道 IEEE 754 无法表示的最小整数是 2^(mantissa+1) + 1,但我该如何获取该信息并将其更改为偶数?
我曾考虑过最大化尾数位,然后按 2 倍缩放,但这是否正确?
【问题讨论】:
-
我想你的意思可能是 2**number_of_mantissa_bits+1?对于偶数,您获得一个二进制数,因此 2**(number-of-mantissa-bits+1)+2。
-
@njuffa 那么这是最小的偶数吗?这对我来说完全有意义,但出于某种原因,我们的 cs 课程有 2^(mantissa + 2) + 2,知道为什么吗?或者这是一个错字?
-
好吧,你是怎么计算 number_of_mantissa_bits 的?是只计算 IEEE-754 编码中的位数,还是计算有效尾数位数,即编码(小数)位加隐式(隐藏)整数位?
-
只有尾数位数,这就是为什么它让我感到困惑@njuffa
-
@ylun.ca 如果您只计算 IEEE-754 格式编码的尾数位数,并带有隐式整数位,则无法准确呈现的最小整数为 2**(number_of_mantissa_bits+ 1)+1。正如您的课程资料所述,无法精确表示的最小偶数是 2**(number_of_mantissa_bits+2)+2。您可以通过查看每个 binade 中编码数字之间的最小间距来轻松地为自己澄清这一点。或者您可以使用 IEEE-754 单精度操作数检查蛮力。
标签: floating-point precision ieee-754