数字逻辑(第3版)
上QQ阅读APP看书,第一时间看更新

1.4 数的定点与浮点表示

在计算机中,小数点不用专门的器件表示,而是按约定的方式标出。共有两种方法来表示小数点的存在,即定点表示和浮点表示。定点表示的数称为定点数,浮点表示的数称为浮点数。

1.定点表示

小数点固定在某一位置的数为定点数,包含两种格式:当小数点位于数符和第一数值位之间时,机器内的数为纯小数;当小数点位于数值位之后时,机器内的数为纯整数。采用定点数的机器称为定点机。数值部分的位数n决定了定点机中数的表示范围。若机器数采用原码,小数定点机中数的表示范围是-(1-2-n)~(1-2-n),整数定点机中数的表示范围是-(2n-1)~(2n-1)。在定点机中,由于小数点的位置固定不变,因此当机器处理的数不是纯小数或纯整数时,必须乘上一个比例因子,否则会产生“溢出”。

2.浮点表示

当一个数既有整数部分,又有小数部分时,如何在机器里表达呢?大家知道,可以将(353.75)10表示为0.35375×103的形式,所以在机器里也可以将二进制数表示为这种浮点数的形式。其一般形式为N=2J×S,其中2J称为N的指数部分,J称为阶码,表示小数点的位置,S为N的尾数部分,表示数的符号和有效数字。阶码的符号位称为阶符Jf,尾数的符号位称为尾符Sf

如:  N=-0.000011012=2-410×(-0.1101)2=2-1002×(-0.1101)2

规格化数是使尾数最高数值位非0,可以提高运算精度。例如:(1011)2=(10000)2×,如果表示成2101×0.01011的形式,则尾数需要更多的符号位才能保持精度不变。如果尾数的数值部分只有4位,则会产生误差。

在规格化数中,用原码表示尾数时,使小数点后的最高数据位为1;用补码表示尾数时,使小数点后的数值最高位与数的符号位相反。

两个浮点数作加减运算时要先对阶。

例1-9】已知N1=2011×0.1001,N2=2001×0.1100,求N1+N2。

:先对阶:N2=2001×0.1100=2011×0.0011 (小数点左移2位,阶码加2)

N1+N2=2011×0.1001+2011×0.0011

=2011(0.1001+0.0011)

=2011×0.1100

两个浮点数作乘除法,其规则如下。

若N1=2j1×S1,N2=2j2×S2,则

N1×N2=(2j1×S1)×(2j2×S2)

=2j1+j2)×(S1×S2)

N1÷N2=2j1-j2)×(S1÷S2)