我很难理解IEEE 754 Rounding惯例:
如果我在二进制点的右边有一个由9位组成的二进制数,我需要使用最右边的3位来确定舍入我会做什么?
这是家庭作业所以这就是为什么我对这个问题模糊不清......我需要帮助这个概念。
谢谢!
答案 0 :(得分:6)
向正无穷大意味着舍入的结果永远不会小于参数 朝向负无穷大意味着四舍五入的结果永远不会大于论证 舍入到最近,与偶数的关系意味着舍入的结果有时更大,有时小于(有时等于)参数。
将值+0.100101110
舍入到二进制点之后的六个位置将导致
+0.100110 // for round towards positive infinity
+0.100101 // for round towards negative infinity
+0.100110 // for round to nearest, ties to even
该值已拆分
+0.100101 110
到要保留的位和确定舍入结果的位。
由于该值为正且确定位不全为0,因此向正无穷大舍入意味着将保留部分增加1 ULP。
由于该值为正,因此向负无穷大舍入只会丢弃最后一位。
由于第一个截止位为1而并非所有其他位都为0,因此值+0.100110
比+0.100101
更接近原始值,因此结果为+0.100110
。
对于最近/偶数情况更有启发性的是一个或两个我们实际上有平局的例子,例如:在二进制点之后将+0.1001
舍入为三位:
+0.100 1 // halfway between +0.100 and +0.101
这里,规则说要选择两个最接近的值的最后一位0(最后一位)的一个,即+0.100
,并且该值向负无穷大舍入。但舍入+0.1011
将向正无穷大舍入,因为此时两个最接近的值中的较大值最后为0位。