在我的大学讲座中,我们刚刚使用下表了解了 IEEE 754 算术:
G | R | S | 结果 |
---|---|---|---|
0 | x | x | 什么也不做 |
1 | 1 | x | 四舍五入 |
1 | 0 | 1 | 四舍五入 |
1 | 0 | 0 | 视情况而定 |
如上表所示,圆形位和粘性位可以统一为一(即如果两者之一为真;统一的为真),这将产生相同的结果。
所以我的问题是:为什么我们两者都需要?
感觉 R 和 S 可能只是一回事,他们不将它们混在一起的原因是舍入的精度和控制。
保护位 (G) 帮助我们确定是否处于舍入边缘,舍入位 (R) 就像一个提示,我们可能需要根据其他位进行舍入,而粘性位(S) 用于跟踪保护之后的任何位,以防万一它们中的任何一个非零。
如果有的话,我们知道我们丢失了一些细节,这可能会影响我们向上舍入还是向下舍入,特别是当我们试图保持尽可能准确时。
换句话说,S 给了我们一个“后面有更复杂的东西”的提示。如果将 R 和 S 放在一起,就会失去被砍掉的部分的额外细微差别,这可能会导致许多计算中出现微小的误差。长话短说,这两个位都是为了确保我们不会在真正精确或边界情况下搞砸四舍五入。这有点像当事情变得紧张时为备用计划制定一个备用计划。
所以额外的部分不仅仅是让事情变得复杂,它实际上是在发挥作用!