3.3.2 浮点数的规格化

3.3.2 浮点数的规格化

由上一节的内容得知,浮点数的尾数M 是一个二进制定点小数,它的位数是有限的,但是位数越多,数据的精度也就越高。因此,尾数的位数占满数位时,浮点数的精度才会最高。这就需要对浮点数进行规格化操作。规格化之后的浮点数还能使数据的表示唯一。

由于有效位数和小数点的位置关系不同,因此规格化有两种,分别为右规格化和左规格化。当有效数位进到小数点前面时,需要进行右规格化,在右规格化时,尾数每右移一位,阶码加1,直到尾数变成规格化形式为止;当尾数出现±0.0…0bb…b时,需要进行左规格化,左规格化时,尾数每左移一位,阶码减1,直至尾数变成规格化形式为止。

1985年,IEEE组织成立委员会着手制定浮点数的规格化标准,形成了浮点数标准IEEE754。这个项目的组织者是加州大学伯克利分校数学系教授William Kahan,他的主要成就是在Intel公司设计了8087浮点处理器(FPU),并以此形成了IEEE754标准。凭借这一成就,Kahan教授也获得了1987年的图灵奖。IEEE754标准是目前计算机系统中表示浮点数的标准。其表示浮点数的格式如图3.3所示。

图3.3 浮点数的格式

32位单精度格式中包括1位符号、8位阶码、23位尾数;64位双精度格式中包括1位符号、11位阶码、52位尾数。