第二章 指令系统

1 表数范围

  在尾数用原码、纯小数,阶码用移码、整数的浮点数表示方式中,规格化浮点数N的表数范围是:
          (2.1)
  例如,p=23,q=7, 尾数用原码、纯小数表示,阶码用移码、整数表示,规格化浮点数N的表数范围是:
      
  即为:          (2.2)
  从式(2.1)中可以看出,规格化浮点数的最大正数值是由尾数的最大正数值与阶码的最大正数值组合而成的,而最小正数值是由尾数的最小正数值与阶码的最小负数值组合而成的。在负数区间,规格化浮点数的最大负数值是由尾数的最大负数值与阶码的最小负数值组合而成的,最小负数值是由尾数的最小负数值与阶码的最大正数值组合而成的,这一点也可以从图2.2所示的数轴上看到。

  在一般浮点数表示法中,阶码通常要用移码表示的主要原因是:从上面看到的,规格化浮点数的最大负数(-Nmax)和最小正数(Nmin)都与通过阶码的最小负数值有关,而在除移码之外的其它所有码制中,最小负数都不是全0(包括符号位)。如果浮点零与机器零不一致,对软件设计和硬件设计都会造成许多麻烦。
  当尾数用补码表示时,正数区间的表数范围与尾数采用原码时完全相同,而负数区间的表数范围为:
          (2.3)
  例如,尾数用补码、纯小数表示,阶码用移码、整数表示,p=6,q=6,,规格化浮点数N在正数区间的表数范围是:
      
  即为:           (2.4)
  在负数区间的表数范围是:
      
  从上面的分析中可以看到,在尾数采用纯小数表示的情况下,由于尾数的绝对值只能在到1之间变化,因此,规格化浮点数的表数范围主要与阶码的长度q和尾数的基值有关,这时,能表示的绝对值最大的浮点数可近似为:
                      (2.5)