IEEE浮点标准学习续

来源:互联网 发布:js文件解压缩 编辑:程序博客网 时间:2024/06/17 00:33

非规范化浮点数

当浮点数的指数为允许的最小指数值,即emin(-126)时,尾数不必是规范化的。如,规范化浮点数1.0x2^(-129)可表示为0.001x2^(-126)。为了保存非规范化浮点数,IEEE标准采用了类似处理特殊值零时所采用的的办法,即用特殊的指数域值emin-1加以标记,此时实际保存的指数域值为127+emin-1=0,即0 00000000 001 0000 0000 0000 0000 0000(单精度)

有符号0

因为在IEEE标准的浮点数格式中,小数点左侧的1是隐藏的,而0明显需要尾数必须为0,所以0不能用这种标准直接表述,只能作特殊处理。实际上,0在实际表示时,尾数域为全0,指数域为emin-1=-127,实际保存时指数域也为全0。考虑到符号域的作用,因此存在两个0,即+0和-0。
IEEE标准规定+0和-0是相等的。有符号0可以避免运算中,特别是涉及到无穷的运算中,符号信息的丢失。

NaN

NaN用于处理计算中出现的错误情况,如:0.0除以0.0,或者求负数的平方根。对于单精度浮点数,NaN是这样表示的,指数域为emax+1=128(指数域为全1),且尾数域不等于0的浮点数。所以NaN是一簇,并非一个。

无穷

和NaN一样,特殊值无穷的指数部分同样为emax+1=128,但无穷的尾数部分必须为0。特殊值无穷是德计算中发生的上溢错误不必以终止运算为结果。

大小排序

除NaN以外,从小到大依次为:负无穷、负的有穷非0值、负0和正0、正的有穷非0值、正无穷。

特殊情况运算

除NaN以外,任何非0值除以0,结果都是无穷,而无穷的符号由作为除数的0的符号决定。
0除以0得到的结果不是无穷而是NaN。

0 0
原创粉丝点击