前言: 计算机在表示一个小数时,一般假定规格化前的数为 P+g 位,P时有效位字长,g是有效位字长之后的的代码长度.
比如说 0.xxxxx|010100 在这里,红的表示P, 绿的表示g,
1. 恒舍法
顾名思义,就是把绿的全部抛弃. 这样处理好处很显然,简单嘛,不管三七二十一,扔了就完了.但是问题也很突出,就是精度有问题.
这种方法误差是最大的,在精度有那么一丢丢要求的地发都会被嫌弃.
2.恒置法
这也顾名思义,就是吧红的最后一位置位1, 这实现起来倒也不难,那精度是不是也有问题呢?咋一看,是的,实际上,非也.

从图中可以看出,误差的积累会互相抵消,除了绿色全为零的情况没人跟他相匹配之外.故而最后的误差只有2^-p,相当小的一个误差了.
3.下舍上入法:
这方法和恒指法不一样的地方,就在于红的部分全取了,但是要不要加,看绿色部分的最高位.如果绿的最高位是1,加,如果是0,那就扔了.这其实也不是特避难,但是麻烦,因为有个特殊情况,如果红色的全是1, 那再加上的最后一位的1,将会使整个数溢出,这时候要再往右规格化,挺麻烦的一件事.
而且吧,如果是0.XXXXX10

本文详细解析计算机在处理小数时采用的五种舍入方法:恒舍法、恒置法、下舍上入法、R*舍入法及查表法。对比分析各方法的精度、复杂度及适用场景。

1197

被折叠的 条评论
为什么被折叠?



