关于 IEEE-754 单精度浮点数,您如何执行舍入到最近,将舍入到所需位置中最近的偶数位(默认和迄今为止最常见的模式)?
基本上我有保护钻头、圆形钻头和粘性钻头。
因此,如果我们将它们组成一个向量并将其称为 GRS,则适用以下规则:
G = 0
,向下舍入(什么都不做)G = 1
, 和 RS == 10
或 RS == 01
, 向上取整(尾数加一)GSR = 111
, 舍入为偶数 所以我不确定如何执行到最近的回合。任何帮助是极大的赞赏。
最佳答案
只是为了确保我们在同一页面上,G
是三个中的最高有效位,R
接下来是 S
可以被认为是最低有效位,因为它的值部分代表了在计算中被截断的甚至更低的有效位。这三位只在计算时使用,不会在计算前后存储在浮点变量中。
为了使用 G
将结果四舍五入到最接近的偶数,您应该这样做, R
和 S
:
GRS - 行动
0xx - 向下舍入 = 什么都不做(x 表示任何位值,0 或 1)
100 - 这是一个 领带 : 如果尾数位在 之前,则向上取整G 是 1,否则向下舍入 = 什么都不做
101 - 围捕
110 - 围捕
111 - 围捕
向上舍入是通过将尾数加 1 来完成的,尾数位于 G
之前的尾数最低有效位位置。 .如果尾数溢出(您将存储的 23 个最低有效位变为 0),您必须将指数加 1。如果指数溢出,则根据数字的符号将数字设置为 +infinity 或 -infinity。
在平局的情况下,如果尾数是奇数,则在尾数上加 1,如果尾数是偶数,则不加任何内容。这就是使结果四舍五入到最接近的偶数值的原因。
关于binary - 如何使用 float 执行舍入到偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8981913/