3.2.2 计算机中数的表示

1.数的定点表示

定点数是指小数点位置固定不变的数。在计算机中,通常用定点数来表示整数与纯小数,分别称为定点整数与定点小数。

(1)定点整数

定点整数的小数点的位置约定在最低数值位的后面,用于表示整数。例如,设计算机字长使用的定点数的长度为2字节(即16位二进制数),则十进制整数-195在计算机内的表示形式如图3-5所示。

图3-5 十进制整数-195在计算机内的表示形式

注意

(195)10=(11000011)2,由于11000011不足15位,故前面补足7个0,最高位用1表示负数。

(2)定点小数

定点小数的小数点的位置约定在数符位和数值部分的最高位之间,用以表示小于1的纯小数。例如,假定定点数的长度仍为2字节,则十进制小数0.6876在机内用定点数表示的形式如图3-6所示。

图3-6 十进制小数0.6876在机内的定点数表示形式

实际上,0.6876=(0.10110000000001101…)2,由于最高位用以表示符号,故2字节可以精确到小数点后第15位。

2.数的浮点表示

在计算机中,定点数通常只用于表示整数或纯小数。而对于既有整数部分又有小数部分的数,一般采用“浮点数”或“科学计数法”表示。浮点数分为阶码和尾数两部分。

例如,十进制数2750=0.275×104,其中,0.275称为尾数,4是阶码。

类似地,二进制数(1011011)2可以表示为0.1011011×2111

在浮点数表示方法中,小数点的位置是浮动的,如十进制实数-5432.3036可表示为-5.4323036×103、-0.54323036×104、-543230.36×10-2等多种形式。为了便于计算机中小数点的表示,规定将浮点数写成规格化的形式,即尾数的绝对值大于等于0.1且小于1,从而唯一地规定了小数点的位置。

例如,十进制实数–5465.32以规格化形式表示为-0.546532×104。阶符为0(正数),阶码为4,数符为1(负数),尾数为546532。

同样,任意二进制规格化浮点数的表示形式为N=±d×2±P

其中,d是尾数,尾数长度影响数的精度,前面的“±”表示数符;P是阶码,它是一个整数,前面的“±”表示阶符。在计算机中阶码一般用补码定点整数表示,尾数一般用补码或原码定点小数表示。

一般情况下,浮点数在计算机中的存储格式如图3-7所示。

图3-7 浮点数存储格式

例如,设尾数为8位,阶码为6位,阶符与数符各1位,用2字节存储;则二进制数x=-1101.01经规格化后,表示为x=-0.110101×2100,存储格式如图3-8所示。

图3-8 x=-1101.01B的存储格式

定点数和浮点数相比较而言,即使用4字节来表示一个定点数,4字节表示的浮点数的精度和表示范围都远远大于定点数,这是浮点数的优越之处。但在运算规则上,定点数比浮点数简单,易于实现。因此,一般计算机中同时具有这两种表示方法,视具体情况进行选择应用。