|
|
所谓定点数,就是表示数据时小数点的位置固定不变。小数点的位置通常有两种约定方式:定点整数(纯整数,小数点在最低有效数值位之后)和定点小数(纯小数,小数点在最高有效数值位之前)。
|
|
|
设机器字长为n,各种码制表示下的带符号数的范围如下表所示。当机器字长为n时,定点数的补码和移码可表示2n个数,而其原码和反码只能表示2n-1个数(0表示占用了两个编码),因此,定点数所能表示的数值范围比较小,运算中很容易因结果超出范围而溢出。
|
|
|
|
|
|
浮点数是指小数点位置不固定的数,浮点表示法能表示更大范围的数。在十进制中,一个实数可以写成多种表示形式。例如,83.125可写成103×0.083125或104×0.0083125等。同理,一个二进制数也可以写成多种表示形式。例如,二进制数1011.10101可以写成24×0.101110101、25×0.0101110101或26×0.00101110101等。
|
|
|
|
|
其中,E称为阶码,F为尾数,这种表示数的方法称为浮点表示法。
|
|
|
在浮点表示法中,阶码通常为带符号的纯整数,尾数为带符号的纯小数。浮点数的表示格式一般如下:
|
|
|
|
显然,一个数的浮点表示不是唯一的。当小数点的位置改变时,阶码也相应改变,因此可以用多种浮点形式表示同一个数。
|
|
|
浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。
|
|
|
为了提高数据的表示精度,当尾数的值不为0时,规定尾数域的最高有效位应为1,这称为浮点数的规格化表示,否则需修改阶码左移或右移小数点的位置,使其变为规格化数的形式。
|
|
|
|
IEEE 754是由IEEE制定的有关浮点数的工业标准,被广泛采用。该标准的表示形式如下:
|
|
|
|
其中,S为数的符号位,为0时表示正数,为1时表示负数;P为指数(阶码),用移码表示(偏移值为2p-1-1,p为阶码的位数);M为尾数,用原码表示。
|
|
|
对于阶码为全0或全1的情况,IEEE 754标准有特别的规定:若P为全0且M为0,则表示真值±0(正负号和数符位有关)。如果P为全1且M是0,则这个数的真值为±∞(与符号位有关);如果P为全1并且M不是0,则规定其不是一个数(NaN)。
|
|
|
目前,计算机中主要使用三种形式的IEEE 754浮点数,如下表所示。
|
|
|
|
|
在IEEE 754标准中,对于单精度浮点数和双精度浮点数,约定小数点左边隐含有一位,通常这位数就是1,因此尾数为1.××…×。
|
|
|