Floating point 加法后对浮点数进行舍入(保护位、粘性位和舍入位)

Floating point 加法后对浮点数进行舍入(保护位、粘性位和舍入位),floating-point,ieee-754,Floating Point,Ieee 754,我还没有在网上找到一个很好的解释,所以我希望这里有人能给我解释一下 我想手工添加两个二进制数:1.0012*22 1.010000000000000112*21 我可以添加它们,没有问题,在对第一个数字进行反规范化、添加两个数字并重新规范化它们之后,我会得到以下结果。 1100000000000000112*22 问题是,如果不截断或舍入一位,该数字将不适合单精度IEEE 754格式。我的作业要求我们将这个数字转换成单精度IEEE 754格式(同样,这通常没有问题,我可以很容易做到)。它要求我

我还没有在网上找到一个很好的解释,所以我希望这里有人能给我解释一下

我想手工添加两个二进制数:

1.0012*22
1.010000000000000112*21

我可以添加它们,没有问题,在对第一个数字进行反规范化、添加两个数字并重新规范化它们之后,我会得到以下结果。

1100000000000000112*22


问题是,如果不截断或舍入一位,该数字将不适合单精度IEEE 754格式。我的作业要求我们将这个数字转换成单精度IEEE 754格式(同样,这通常没有问题,我可以很容易做到)。它要求我们首先使用保护、圆形和粘性位,然后在没有这些位的情况下重复。然而,我不确定这些位是如何帮助舍入的。但是,如果在没有保护位、圆形位和粘性位的情况下执行此操作,我会假设我只截断最后一个LSB。

单精度意味着尾数包含23位(假设32位体系结构),再加上一个隐藏位。因此,第一个从尾数中消失

下一步是确定G位和R位或保护位和舍入位

保护位是尾数0位之后的两位中的第一位,将被截断

圆位是尾数的o位之后的第二位。这里的保护位是1,而圆位是零,因为没有其他位存在

粘性位也为零,因为圆形位的右边没有一个。因此,我们有GRS或100


根据使用的书本或处理器,这通常意味着四舍五入到最接近的偶数。在这种情况下,由于LSB(最低有效位)为1,尾数将被舍入到1100000 000 000 000 000 010。

这可能会有帮助:作为截断的一种选择,考虑将舍入到最近直接到无限精确的答案。