添加后舍入浮点数(保护,粘性和圆形位)

aud*_*tic 8 floating-point ieee-754

我还没能在网上的任何地方找到一个很好的解释,所以我希望这里有人可以为我解释.

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

1.001 2*2 2
1.010,0000,0000,0000,0000,0011 2*2 1

我可以添加它们没有问题,我在取消规范化第一个数字后,得到以下结果,添加两个,并重新规范化它们.

1.1100,0000,0000,0000,0000,0011 2*2 2

问题是,如果没有截断或舍入一位,该数字将不适合单精度IEEE 754格式.我的任务要求我们将这个数字放入单精度IEEE 754格式(这也是通常没有问题,我可以轻松做到这一点).它要求我们首先使用保护,圆形和粘性位,然后在没有这些位的情况下重复.但是,我不确定这些位如何帮助舍入.我会假设如果我没有保护,圆形和粘性位,我会截断最后一个LSB​​.

小智 5

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

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

Guard位是尾数0位的两位中的第一位,将被截止.

圆位是尾数的o位之后的第二位.此处的保护位为1,并且由于不存在其他位,因此舍入位为零.

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

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