购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2.4数的定点和浮点表示

计算机中运算的数有整数,也有小数。在计算机中,小数通常有两种规定:一种是规定小数点的位置固定不变,这时的机器数称为定点数;另一种是小数点的位置可以浮动,这时的机器数称为浮点数。微型计算机多使用定点数。

1 . 定点数 定点数是指计算机中数的小数点位置是固定不变的。根据小数点位置的固定方法不同,又可分为定点整数及定点小数表示法。前面所介绍的整数均为定点整数,可以认为小数点固定在数的最低位之后。

(1)定点整数

如果小数点隐含固定在整个数值的最右端,符号位右边所有的位数表示的是一个整数,即为定点整数。例如,对于16位计算机,如果符号位占1位,数值部分占15位,于是机器数为0111111111111111的等效十进制数为+32767,其符号位、数值部分、小数点的位置示意如图1-13所示。

图1-13 定点整数的符号位、数值部分和小数点位置示意图

2)定点小数

如果小数点隐含固定在数值的某一个位置上,即为定点小数

如果小数点固定在符号位之后,即为纯小数。假设机器字长为16位,符号位占1位,数值部分占15位,于是机器数1.000000000000001的等效的十进制数为-2-15。其符号位、数值部分、小数点的位置示意如图1-14所示。

图1-14 纯小数的符号位、数值部分和小数点的位置示意图

2 . 浮点数

所谓浮点数,是指计算机中数的小数点位置不是固定的,或者说是“浮动”的。在计算机中,浮点数法一般用来表示实数,可以采用“阶码表示法”来表示浮点数,它由整数部分和小数部分组成,一个实数可以表示成一个纯小数和一个乘幂之积。

采用浮点数最大的特点是比定点数表示的数值范围大。

例如,对于十进制数56.725=102×0.56725;对于二进制数110.11=22×1.1011

对于任何一个二进制数N,都可表示为:

N=(2±E)×(±S)

浮点数在计算机中的编码基本格式为:

其中E称为阶码,阶符为0表示E为正、为1表示E为负。由此可知,小数点的实际位置随着阶码E的大小和符号而浮动决定;±S为全部有效数据,称为尾数部分。

例如:1001.011=20100×(0.1001011)

在这里,0100部分称为阶码且为正,(0.1001011)部分称为尾数。

浮点数的格式多种多样,例如,某计算机用4字节表示浮点数,阶码部分为8位补码定点整数,尾数部分为24位补码定点小数,如图1-15所示。

其中,阶符表示指数的符号位;阶码表示幂次;数符表示尾数的符号位;尾数表示规格化后的小数值。

图1-1532位浮点数的格式

【例 1-4 】描述用4字节存放十进制浮点数“136.5”的浮点格式。

由于(136.5)10=(10001000.1)2,将二进制数“10001000.1”进行规格化,即

10001000.1=0.100010001×28

阶码28表示阶符为“+”,阶码“8”的二进制数为“0001000”;尾数中的数符为“+”,小数值为“100010001”。

十进制小数“136.5”在计算机中的表示如图1-16所示。

图1-16规格化后的浮点数

在实际应用时,由于阶码指数可选用不同的编码(原码、补码等),尾数的格式和小数点的位置也可以有不同的规定,所以,浮点数的表示方法不唯一,不同的计算机可以有不同的规定,这就出现了数据格式的不兼容问题。为此,IEEE制定了有关工业标准,并为大多厂家所接受。

Pentium处理器中的浮点数据格式完全符合IEEE标准,它表示为如下形式。

(-1)S2E(b0⊿b1b2b3…bp-1)

其中,(-1)S是该数的符号位,S=0表示此数为正,S=1表示此数为负;E是指数,它是一个带偏移量的整数,表示成无符号整数;(b0b1b2b3…bp-1)是尾数,其中bi=0或1,“ ”代表隐含的小数点;P是尾数的长度,它表示尾数共P位。

Pentium微处理器中的浮点数有3种表示格式,分别为单精度浮点数(32位)、双精度浮点数(64位)、扩充精度浮点数(80位)。它一般都表示成规格化形式,即尾数的最高位b0总是1,且它和小数点一样隐含存在,在机器中不明确表示出来。

在Pentium微处理器中,单精度浮点数的表示形式如图1-17所示。

图1-17 Pentium微处理器单精度浮点数 2K/l7GVGKS8LUEsKgD0lhn/s8im0vOiz8r/Cn4b1QkighmIqEheaDmr+Uk/veyit

点击中间区域
呼出菜单
上一章
目录
下一章
×