浮点数尾数基值大小(计算机系统结构)

       文章将会结合定长浮点数据表示尾数基值大小

       机器字长相同的时候,使用浮点数表示实数比用定点数表示有更大的可表示范围。不少机器都是采用如下的格式表示一个浮点数,图中的阶码部分包含了阶符和阶值两部分,值得注意的是p+1位阶码部分中影响阶值大小的实际只有p位。

      数学中实数在数轴上是连续分布的。但是对于机器字长有限,浮点数只能表示出数轴上分散于正、负两个区间上的部分离散值如下图所示:

    浮点数阶值的位数p主要影响两个可表示区的大小,即可以表示数的范围大小,而尾数的位数m主要影响在可表示区中能表示值得精度。由于位数有限则不可避免地会产生误差,而误差的大小就和位数m有关。

    我们讨论浮点数尾数基值选择的影响,用r_{​{m}}表示浮点数的基。则r_{​{m}}进制的数位为\left \lceil lb r_{_{m}} \right \rceil。位数的机器位数为m时,相当于r_{​{m}}进制的尾数有_m{'}^{}个位数,其位权向右依次为r_{m}^{-1}r_{m}^{-2}...、r_{m}^{-m'}。其中m'=m/\left \lceil lb r_{_{m}} \right \rceil

    以r_{​{m}}为尾数基值的浮点数是当其尾数右移一个r_{​{m}}进制数位时,为保持数值不变,阶码才加1。下表列出了阶值采用二进制p位,尾数采用r_{​{m}}进制m'位,在非负阶、正尾数、规格化条件下有关浮点数各种特性参数的一般格式。

扫描二维码关注公众号,回复: 14899233 查看本文章

    规格化正尾数,是指正尾数小数点后的第一个r_{​{m}}进制数位不是0的数。因为尾数为全0的数是机器零,不作为机器中可表示的数。所以,最小的正尾数值应当是r_{​{m}}进制尾数的小数点后的第1个r_{​{m}}进制数位为1,其他数位都是0的数值,即r_{m}^{-1},则最大的尾数为1-r_{m}^{-1}

    由于为非负阶,最小阶应该是阶值部分全为0,所以最小阶就是0,而最大阶就应该阶值部分全为1,所以最大阶就是2^{p}-1,阶值的值就是从0到2^{p}-1,共2^{p}个。

    按浮点数表示格式的含义,浮点数的值为:阶数值X尾数值,则可以更具上面的总结得出最大表示的数和最小的数。

猜你喜欢

转载自blog.csdn.net/peng_lv/article/details/127592191
今日推荐