11.1.3 浮点数
11.1.3 浮点数
在计算机中,浮点数一般由三部分组成:数值的符号位、阶码和有效数字(以后简称为尾数)。这种浮点数是用科学记数法来表示的,即:浮点数=符号位.有效数字×2阶码。
Intel系列的协处理器支持3种形式的浮点数:短型浮点数(32位)、长型浮点数(64位)和临时浮点数(80位),它们分别对应单精度、双精度和扩展精度浮点数。这些浮点数的数据格式都符合IEEE-754标准,它们的具体格式如图11.3所示。
图11.3 80x87中浮点数的三种数据格式
一、十进制数转换成浮点数的步骤
1、将十进制数转换成二进制数:整数部分用2来除,小数部分用2来乘; | ||
2、规格化二进制数:改变阶码,使小数点前面仅有第一位有效数字; | ||
3、计算阶码: | ||
◆ 短型浮点数的阶码加上偏移量7FH | ||
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,尾数为:10010001 0000 0000 0000 000 | |
综合上述可得:(100.25)10的浮点形式为:010000101 10010001000000000000000 |
下面是学习和掌握十进制数转化为浮点数的控件,它可按步骤演示整个转换过程。
几个特殊数据的存储规则:
正0: | 所有的数据位都是0; |
负0: | 最高位为1,其它的数据位是0; |
正/负无穷: | 符号位为0/1,阶码位全为1,有效数字全为0; |
NAN: | 非法的浮点数,阶码位全为1,有效数字不全为0; |
其中:NAN — Not-A-Number。