陈斌彬的技术博客

Stay foolish,stay hungry

定点数的表示

计算机中常用的数据表示格式有两种,一是定点格式,二是浮点格式。所谓定点数和浮点数,是指在计算机中一个数的小数点的位置是固定的还是浮动的:如果一个数中小数点的位置是固定的,则为定点数;如果一个数中小数点的位置是浮动的,则为浮点数。一般来说,定点格式可表示的数值的范围有限,但要求的处理硬件比较简单。而浮点格式可表示的数值的范围很大,但要求的处理硬件比较复杂。

采用定点数表示法的计算机称为定点计算机,采用浮点数表示法的计算机称为浮点计算机。定点机在使用上不够方便,但其构造简单,造价低,一般微型机和单片机大多采用定点数的表示方法。浮点机可表示的数的范围比定点机大得多,使用也比较方便,但是比定点机复杂,造价高,在相同的条件下浮点运算比定点运算速度慢。目前,一般大、中型计算机及高档微型机都采用浮点表示法,或同时具有定点和浮点两种表示方法。

所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。通常将定点数据表示成纯小数或纯整数。为了将数表示成纯小数,通常把小数点固定在数值部分的最高位之前;而为了把数表示成纯整数,则把小数点固定在数值部分的最后面,如图2-1所示。

img

图中所标示的小数点“.”,在机器中是不表示出来的,而是事先约定在固定的位置。对于一台计算机,一旦确定了小数点的位置就不再改变。

对纯小数进行运算时,要用适当的比例因子进行折算,以免产生溢出,或过多损失精度。

假设用一个n位字来表示一个定点数x= x0 x1 x2 … xn-1,其中一位x0用来表示数的符号位,其余位数代表它的量值。为了对所有n位进行统一处理,符号位x0通常放在最左位置,并用数值0和1分别代表正号和负号。对于任意定点数x= x0 x1 x2 … xn-1,如果x表示的是纯小数,那么小数点位于x0和x1之间,数的表示范围为:0≤|x|≤1-2-(n-1);如果x 表示的是纯整数,则小数点位于最低位xn-1的右边,数的表示范围为:0≤|x|≤2n-1-1。

目前计算机中大多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算。