1、浮点数近似规则

1. 名词

保留位(Guard bit)、近似位(Round bit)和粘滞位(Sticky bit)。

保留位:近似后的最低位;

近似位:保留位的后一位;

粘滞位:近似位后的所有位进行或运算后视作一位

truncation:截断,舍去,因为浮点数的位数是固定的,计算中多出来的位数需要利用一些规则进行舍去(比如四舍五入)

 

2. Truncation Methods(舍弃的方法)

2.1 Chopping

chopping方法:直接把把保留位(有的书上叫LSB)后面的位全部丢掉,比如:

0100100111001 —>010010011

这个方法保留位处的误差从0到接近1,误差不平衡,不可取。(平衡的误差应该是从-1到1或者从0.5到0.5且分布概率一样)

2.2 Von Neumann Rounding

Von Neumann Rounding方法:如果保留位后面的位全部是0,那就把它后面的位全部丢掉,保留位不变,否则的话,保留位置为1(不管它之前是否为1)。这个方法的误差在保留位处从接近-1到接近1,误差是平衡的,但是误差的绝对值有些小高。

2.3 Rounding

Rounding分三种情况:

1.近似位(名词里面有介绍,有的书上叫MSB)是0,保留位保留,保留位后面的全部都丢了,这是肯定的,近似位不是1都没有达到四舍五入的"五"。

2.近似位为1,如果近似位后面任意一位还有1(粘滞位),那么没商量,保留位直接加1,因为这比四舍五入的“五”要大了

3.近似位为1,但是近似位后面的全部都是0,到了抉择的时候了:

(1)如果保留位是0,就把保留位后面的全丢了

(2)如果保留位是1,那就给保留位加1,让它进位后变成0

总之就是在四舍五入刚好等于“五”时,把保留位变成偶数(即0)

你可能感兴趣的:(浮点数)