11.1.3 浮点数

在计算机中,浮点数一般由三部分组成:数值的符号位、阶码和有效数字(以后简称为尾数)。这种浮点数是用科学记数法来表示的,即:浮点数=符号位.有效数字×2阶码

Intel系列的协处理器支持3种形式的浮点数:短型浮点数(32位)、长型浮点数(64位)和临时浮点数(80位),它们分别对应单精度、双精度和扩展精度浮点数。这些浮点数的数据格式都符合IEEE-754标准,它们的具体格式如图11.3所示。

图11.3 80x87中浮点数的三种数据格式

一、十进制数转换成浮点数的步骤

1、将十进制数转换成二进制数:整数部分用2来除,小数部分用2来乘;

2、规格化二进制数:改变阶码,使小数点前面仅有第一位有效数字;

3、计算阶码:

短型浮点数的阶码加上偏移量7FH
 长型浮点数的阶码加上偏移量3FFH
 扩展型浮点数的阶码加上偏移量3FFFH

4、以浮点数据格式存储。

把数值的符号位、阶码和尾数合在一起就得到了该数的浮点存储形式。

注意:尾数是带有一个隐含位的23位数,即:数“1.XXXX”的尾数是“XXXX”,前面的”1”被隐含掉,它只在扩展精度的格式中才被显式表示出来。

例11.1 把十进制数100.25转换成协处理器中的浮点数

解:

1、进制转换:(100.25)10=(1100100.01)2

2、规格化:(1100100.01)2=1.10010001×26=1.10010001×2110

3、计算阶码:110+01111111=10000101

4、数值的符号位为0,阶码为:10000101,尾数为:1001 0001 0000 0000 0000 000

综合上述可得:(100.25)10的浮点形式为:0 10000101 10010001000000000000000

下面是学习和掌握十进制数转化为浮点数的控件,它可按步骤演示整个转换过程。

几个特殊数据的存储规则:

正0:  所有的数据位都是0;
负0:  最高位为1,其它的数据位是0;
正/负无穷:  符号位为0/1,阶码位全为1,有效数字全为0;
NAN:  非法的浮点数,阶码位全为1,有效数字不全为0;

其中:NAN — Not-A-Number。