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

2023-11-23

我还没有在网络上的任何地方找到对此的良好解释,所以我希望这里有人可以为我解释一下。

I want to add two binary numbers by hand:

1.0012 * 22
1.010,0000,0000,0000,0000,00112 * 21

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

1.1100,0000,0000,0000,0000,00112 * 22

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


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

接下来是确定G和R位或Guard和Round位。

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

圆位是尾数的o位之后的第二位。这里的保护位为 1,轮位为 0,因为不存在其他位。

粘性位也为零,因为圆位右侧没有任何位。因此我们有 GRS 或 100。

根据所使用的书籍或处理器,这通常意味着四舍五入到最接近的偶数。在这种情况下,由于 LSB(最低有效位)为 1,因此尾数的数字将向上舍入为 1100,0000,0000,0000,0000,010。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加法后对浮点数进行舍入(保护位、粘性位和舍入位) 的相关文章

随机推荐