第二章 指令系统


  根据大多数计算机的实际情况,我们假定:浮点数的尾数用原码、小数表示,阶码用移码、整数表示,尾数基值=2,阶码基值=2,并根据实际应用要求给出表数范围不小于N(N为能表示的最大的正数),表数精度不低于d,并且要求尾数和阶码都正、负对称。
  由表数范围的要求,得到: 
  解这个不等式:  
  得到阶码字长:       (2.11)
  根据表数精度的要求,得到:
  解这个不等式:  
  得到围数字长:           (2.12)
  由(2.11)和(2.12)两个不等式计算出浮点数的尾数字长p和阶码字长q,再加上一个尾数符号位和一个阶码符号位就构成了一种浮点数格式。应当注意的是在满足这两个不等式的前提下,通常要适当调整尾数字长p和阶码字长q的取值,使浮点数的总字长达到一个合理的数值。
  下面我们举一个具体的例子。
  要求设计一种浮点数格式,其表数范围不小于,正、负数对称,表数精度不低于
  根据表数范围的要求,用(2.11)不等式计算:
     
  取阶码字长q=7。
  根据表数精度的要求,用(2.12)不等式计算:
     
  如果取尾数字长p=54,则浮点数的总字长为:p+q+2=54+7+2=63,离8的整倍数64还差一位,这一位可以加到尾数字长p中用于提高浮点数的表数精度,也可以加到阶码字长q中用于提高浮点数的表数范围。在这里,暂且把它加到尾数字长p中以提高浮点数的表数精度。这样设计出来的浮点数的格式如图2.4所示,尾数55位。阶码7位,阶码符号和尾数符号各一位。

  在浮点数的尾数用原码、小数表示,阶码用移码、整数表示,尾数基值=2,阶码基值=2,阶码字长q=7,尾数字长p=55,尾数符号和阶码符号各一位,总字长为64位。图2.4给出的这种浮点数表示方式的各项主要性能如下:
  能表示的最大尾数值: ,即尾数数值部分的所有55个二进制位全部为都1;
  绝对值最小的尾数值: ,尾数数值部分除最高一个二进制位为1之外,其余54个二进制位全部为0;
  能表示的最大阶码: ,包括阶码符号位在内的所有8个二进制位全部为1;
  能表示的最小阶码: ,包括阶码符号位在内的所有8个二进制位全部为0;
  最大正数:
  最小正数:
  最大负数:
  最小负数:
  表数精度:
  浮点零:由于阶码采用移码表示,且正、负数对称,因此,浮点零与机器零相同,即64个二进制位全为0;
  表数效率: ,如果采用隐藏位表数方法,则表数效率能达成最高 ;
  能表示的浮点数个数: