IEEE浮点数表示

作者 : 开心源码 本文共811个字,预计阅读时间需要3分钟 发布时间: 2022-05-13 共192人阅读

IEEE标准中浮点数用形如V=(-1)^s x M x 2^E的格式表示一个小数:
s?符号位,s=1代表负数,s=0代表正数。
M?尾数,代表小数点之后的数。
E?阶数,对刚才的小数进行加权,权重是2的E次幂。

位表示

所以整个浮点数的二进制表示形式由3个部分组成:1位的符号段(s)+ k位的阶码段 + n位的小数字段。
说明:在32位单精度表示中,k=8, n=23;在64位双精度表示中,k=11, n=52;

类别

根据阶码段的值,浮点数可以分为3种不同的情况:

1.规格化的值

1.1阶码E

这是最普遍的,就是阶码段即非全0,也非全1。此时阶码字段被解读为以偏置(biased)形式表示的有符号整数,即E = e – Bias。此处的e代表阶码段的无符号二进制数,而Bias = 2^(k-1) -1,(单精度是127,双精度是1023)。

1.2尾数M

此处尾数定义为M = 1 + f,f表示小数字段。此处隐含以1开头的尾数表示,因而我们可以把M看成一个二进制表达式为1.******的数字。

2.非规格化的值

2.1阶码E

当阶码段全为0时,所表示的就是非规格化的数字。此时,不同于规格化形式,阶码值E = 1 – Bias,而Bias依然为 2^(k-1) -1。

2.2尾数M

不同于规格化形式,尾数M = f,这就是小数字段不包含隐含的1了。
非规格化的数一般用来表示那些非常接近于0的小数。而且也可以用来表示0,即阶码段和小数段全为0。

3.特殊的值

3.1无穷大的值

当阶码段全为1,且小数段全为0时,得到的值表示无穷大,当符号段为1代表负无穷,符号段为0代表正无穷。一般用在表示两个很大的数相乘,结果溢出或者零除时。

3.2不是值(NaN)

当阶码段全为1,且小数段非全0时,结果被称为NaN(Not a Number),一般表示少量非法运算。如对负数开根号或者无穷数的相互运算时。

3.数字示例

下图表示了8位浮点格式的非负值,且符号段占1位,阶码段占4位,小数段3位,偏置量Bias为2^3 – 1 =7。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » IEEE浮点数表示

发表回复