文章将会结合定长浮点数据表示尾数基值大小
机器字长相同的时候,使用浮点数表示实数比用定点数表示有更大的可表示范围。不少机器都是采用如下的格式表示一个浮点数,图中的阶码部分包含了阶符和阶值两部分,值得注意的是p+1位阶码部分中影响阶值大小的实际只有p位。
数学中实数在数轴上是连续分布的。但是对于机器字长有限,浮点数只能表示出数轴上分散于正、负两个区间上的部分离散值如下图所示:
浮点数阶值的位数p主要影响两个可表示区的大小,即可以表示数的范围大小,而尾数的位数m主要影响在可表示区中能表示值得精度。由于位数有限则不可避免地会产生误差,而误差的大小就和位数m有关。
我们讨论浮点数尾数基值选择的影响,用表示浮点数的基。则进制的数位为。位数的机器位数为m时,相当于进制的尾数有个位数,其位权向右依次为、...、。其中m'=m/。
以为尾数基值的浮点数是当其尾数右移一个进制数位时,为保持数值不变,阶码才加1。下表列出了阶值采用二进制p位,尾数采用进制m'位,在非负阶、正尾数、规格化条件下有关浮点数各种特性参数的一般格式。
规格化正尾数,是指正尾数小数点后的第一个进制数位不是0的数。因为尾数为全0的数是机器零,不作为机器中可表示的数。所以,最小的正尾数值应当是进制尾数的小数点后的第1个进制数位为1,其他数位都是0的数值,即,则最大的尾数为1-。
由于为非负阶,最小阶应该是阶值部分全为0,所以最小阶就是0,而最大阶就应该阶值部分全为1,所以最大阶就是-1,阶值的值就是从0到-1,共个。
按浮点数表示格式的含义,浮点数的值为:阶数值X尾数值,则可以更具上面的总结得出最大表示的数和最小的数。