3. 有关浮点数运算和浮点运算器的一点补充说明
阶码的底为8或16的情况
前面的讨论,都是以阶码值的底为2来进行的。为了用相同位数的阶码表示更大范围的浮点数,在一些计算机中,也有选用阶码的底为8或16的情况,此时被表示成
X = 8Ex * Mx 或 X = 16Ex * Mx
此时阶码 Ex和 尾数Mx还都是用二进制表示的,其运算规则,与阶码以2为底时基本相同,但关于对阶和规格化操作必须有新的相应规定。
当阶码以8为底时,只要原码尾数满足1/8≤Mx就是规格化表示形式,即尾数数值的最高3位中至少要含有1位1。执行对阶和规格化操作时,每当阶码的值增1或减1,尾数要相应的移三位。
当阶码以16为底时,只要原码尾数满足1/16≤Mx就是规格化表示形式,即尾数数值的最高4位中至少要含有1位1。执行对阶和规格化操作时,每当阶码的值增1或减1,尾数要相应的移四位。
对补码表示的尾数,判别规格化或实现规格化操作时,均应使数值的最高三位或四位中至少有一位与符号位不同才正确。
顺便指出, 浮点数的阶码用移码、尾数用原码表示的的优点表现在:
.尾数的符号位在浮点数表示的最高位,比较两个浮点数的大小时,符号非常重要,正数一定大于负数。阶码的位置在机器表示中,处在符号位和尾数值之间,阶码值大的,其移码形式的机器数也大,便于比较浮点数的大小。
. 移码的最小值是各位均为0,它被用来表示机器零,即当阶码的值小于或等于移码所能表示的最小值时,认为浮点数的值为0。此时的机器0为阶码和尾数均为0的形式,给硬件的判零带来很大方便。
浮点运算器中的移位电路
浮点运算器工作过程中,经常执行左右移位的功能,对阶和规格化都可能要求对某个浮点数的尾数移许多位。从加速这些移位操作的速度,即加速浮点数的计算速度考虑,浮点运算器内往往加进某些提高移位速度的线路,我们只是提到这个问题,但不予讨论。
|