2.1.3 定点数与浮点数

日常生活中所使用的数有整数和实数之分,整数的小数点固定在数的最右边,实数的小数点则不固定。计算机中只能表示0和1,无法表示小数点,因此,要使计算机能处理日常使用的数值数据,必须解决小数点的表示问题。通常计算机中通过约定小数点的位置来实现。小数点位置约定在固定位置的数称为定点数,小数点位置约定为可浮动的数称为浮点数

1.定点表示

对于定点小数,其小数点总是固定在数的左边,一般用来表示浮点数的尾数部分。对于定点整数,其小数点总是固定在数的最右边,因此可用定点整数来表示整数。

2.浮点表示

对于任意一个实数X,可以把它表示成如下形式:

X=(-1)S ×M×RE

其中S取值为0或1,用来决定数X的符号;M是一个二进制定点小数,称为数X尾数(mantissa);E是一个二进制定点整数,称为数X指数(exponent);R基数(radix、base),可以取值2、4、16等。在基数R一定的情况下,尾数M的位数反映数X的有效位数,它决定了数X的表示精度,有效位数越多,表示精度就越高;阶E的位数决定数X的表示范围;阶E的值确定了小数点的位置。

假定浮点数的尾数是纯小数,那么,从浮点数的形式来看,绝对值最小的非零数为0.0…01×R-11…1,绝对值最大的数为0.11…1×R11…1。假设mn分别表示阶和尾数的位数,基数为2,则浮点数X的绝对值的范围如下:

上述公式中,紧靠|X|左右两边的两个因子就是非零定点小数的绝对值表示范围,浮点数的最小数是定点小数的最小数2-n去除以一个很大的数,而浮点数的最大数则是定点小数的最大数(1-2-n)去乘以这个大数,由此可见,浮点数表示的范围比定点数表示的范围要大得多。