IEEE754浮点数系列(二)---溢出与特殊数

系列第二篇,大致整理一下部分基本概念和引理。

主要是用于笔记和备忘,初稿可能有点乱,后续熟悉后可能会重新整理,如有错误也可评论指出。

目录

一、上溢Overflow

二、下溢Underflow

三、特殊数

 1、NaN:Not a Number

2、零和无穷


一、上溢Overflow

        假设“中间结果”定义为:指数范围不限时,经过舍入后的计算结果。当上溢的异常发生时,“中间结果”的绝对值是有限的,但严格大于最大有限规格数\Omega;或者说,此时指数严格大于指数最大值e_{max}。此时返回的结果取决于舍入方向。

  • 对于RN舍入到最近模式(包括roundTiesToEven和roundTiesToAway两种),结果将是\pm \infty,符号与中间结果一致;
  • 对于RZ向零舍入,结果为\pm \Omega,符号与中间结果一致;
  • 对于RD向下舍入,若中间结果为正,则返回+\Omega;反之,返回-\infty
  • 对于RU向上舍入,若中间结果为负,则返回-\Omega;反之,返回+\infty

此外,发生上溢时,不精确计算异常也会触发。

注意!!!!!!!!!!!!!!!:

  • 对于RN舍入到最近,若某种运算的精确结果绝对值大于等于Ω+1/2 ulp(Ω),即\beta ^{e_{max}} \times (\beta - \frac{1}{2}\beta^{1-p}),超过了最后两个连续有限浮点数的一半,则返回无穷大,这与舍入到最近的字面意思可能不同。
  • 上溢不等同于返回无穷大结果。
  • 对于RZ,上溢不等同于返回\pm \Omega:若某运算的精确结果的绝对值大于等于Ω、且严格小于\beta ^{e_{max}+1},则返回\pm \Omega,但不发生上溢。

二、下溢Underflow

下溢异常触发时,意味着计算得到了一个非零结果,其绝对值严格小于最小规格数\beta ^{e_{min}}

  • 对于二进制编码,下溢可能在舍入前发生,即精确结果的绝对值非零且严格小于2^{e_{min}}。也可能在舍入后发生,即假设指数范围无界时计算得到的非零结果的绝对值严格小于2^{e_{min}}。在极少情况下会产生影响,如-2^{e_{min}}*2^{-p-1}+2^{e_{min}} = 2^{e_{min}}*(1-2^{-p-1})= 2^{e_{min}}*(1-\frac{1}{4}*2^{1-p}),使用RN模式,在舍入前检查下溢的话会触发下溢,而在舍入后检查则不会触发下溢。

  • 对于十进制编码,下溢结果会在舍入前被检测到并触发。即当下溢的精确结果的绝对值非零且严格小于10^{e_{min}}时,就会触发下溢异常。

发生下溢时,若结果不精确inexact,置下溢标志的同时会置不精确异常。若结果精确,下溢标志不会被置位。IEEE的解释:下溢标志用于警示某些运算结果的精度可能不高 。因此,当运算精确时置位该标志,就是不必要的警示。后面会提到,根据Hauser定理表明,对于舍入到最近偶数的两种舍入方向属性而言,每当加法或减法发生下溢(即计算结果是subnormal)时,运算结果都是exact精确的。 

三、特殊数

 1、NaN:Not a Number

signaling NaNs(sNaNs):在默认情况下,不会作为算术结果出现。当 sNaN 参与大多数算术运算时,会触发 无效操作异常(Invalid Operation Exception)。用于调试和显式错误检查,例如检测未初始化的浮点数据。

指数位全为1,尾数最高位为0。

quiet NaNs(qNaNs):静默的 NaN,当出现无效操作时返回,作为操作数时不触发异常,用于传播错误。如qNaN*8、sNaN+5、\sqrt{-2}均返回qNaN。

指数位全为1,尾数最高位为1。

2、零和无穷

零和无穷的算术基本上都符合我们的数学直觉。如(-1)/(-0)=+\infty,-5/(+\infty)=-0,\sqrt{+\infty}=+\infty。特殊的\sqrt{-0}=-0。举个特殊例子:

 当\sqrt{\Omega } < x \leq \Omega,这里的\Omega是最大有限浮点数。因此x的平方大于最大有限浮点数,则得到的\sqrt{1+x^2}将会是+\infty,因此f(x)得到了+0,而实际上x足够大时,可忽略1,f(x)趋近于1。因此对于关键应用,需要提前证明不会发生上溢或下溢,或者通过检查是否发生了溢出。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XiangrongZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值