其他分享
首页 > 其他分享> > 2022考研408-浮点数表示与运算

2022考研408-浮点数表示与运算

作者:互联网

浮点运算

IEEE754浮点数

这里主要介绍单精度浮点数float,共32位,分为3部分:1位数符、8位阶码、23位尾数,尾数有隐含1.阶码为8位,表示规格化数时范围是1到254之间,偏置取127,这样阶码范围就为-126到127之间,阶码全0表示非规格化数,阶码全1尾数全0表示无穷大,数符为0表示正无穷,为1则为负无穷,阶码全1而尾数非0时则为NaN非数,可以总结如下:

规格化数

31  30                          23  22                                                                                              0

 

 

例如,表示-9.625,先求二进制表示 -9.625 = -1001.101,再移位-9.625=-1.001101 * 2 ^3,尾数001 1010 0000 0000 0000 0000,阶码3+127=130=1000 0010,数符1,合起来就是

1100 0001 0001 1010 0000 0000 0000 0000

写成16进制就为 C11A0000H,若采用小端方式存储在主存中,则该float数存储单元的内容依次为 00H 00H 1AH C1H

NaN(非数)

31  30                          23  22                                                                                               0

 

 

 

 

无穷大

31  30                          23  22                                                                                             0

 

 

无穷用于表达计算中产生的上溢问题。比如两个极大的数相乘时,尽管两个操作数本身可以保存为浮点数,但其结果可能大到无法保存为浮点数,必须进行舍入操作。根据IEEE标准,此时不能将结果舍入为可以保存的最大浮点数(因为这个数可能与实际的结果相差太远而毫无意义),而应将其舍入为无穷。对于结果为负数的情况也是如此,只不过此时会舍入为负无穷,也就是说符号域为1的无穷。

 

非规格化数

31  30                          23  22                                                                                             0

 

在这种情况下,指数值 E=1-Bias(单精度下即为1-127=-126),而有效数字的值 M=f,也就是说它是小数段的值,不包含隐含的开头的 1。

 

 

浮点数的舍入与舍入误差

在浮点数的舍入问题上,IEEE 浮点格式定义了 4 种不同的舍入方式。其中,默认的舍入方法是向偶数舍入,而其他三种可用于计算上界和下界。

    下表是 4 种舍入方式的应用举例。这里需要特别说明的是,向偶数舍入(向最接近的值舍入)方式会试图找到一个最接近的匹配值。因此,它将 1.4 舍入成 1,将 1.6 舍入成 2,而将 1.5 和 2.5 都舍入成 2。

 

 

 

浮点数的运算

l  规格化

n  规格化数:以补码为例,正数时为0.1xxx,负数时为1.0xxxx,最高有效位有效

左规:处理非规格化数,尾数每左移一位,阶码相应的减一,可能多次

右规:处理溢出,尾数右移一位,阶码加1

l  加法

n  对阶

小阶向大阶看齐,也即较小的浮点数,其阶码每加一,尾数就右移一位,此时尾数可能会舍入;

n  尾数求和

当参与相加的两个浮点数阶码经过对阶后,就可以进行尾数求和了;

n  规格化

尾数可能溢出,此时需要右规,相应的阶码加一,同样这里可能产生精度损失

n  溢出判断

这里的溢出判断是指阶码有无溢出

 

习题

1、模拟(三)

 

 

 2和3正确,其它错误,选B

 

标签:舍入,阶码,0000,规格化,尾数,浮点数,2022,408
来源: https://www.cnblogs.com/rainbowriver/p/15409632.html