IEEE754之后的浮点数系统中的NaN和+ -INF

时间:2014-03-01 09:39:46

标签: language-agnostic system ieee-754 floating

在标准中, NaN INF 的表示形式如下:

对于 NaN :指数= emax + 1&尾数!= 0;

对于 INF :exponent = emax + 1&尾数= 0;

他们有很多方法和计算方法可以产生这两个价值。

但实际上 NaN(INF)是什么?

并且 HOW 系统“决定”或“判断”将值存储为这一个(两个)?

这可能是一个看似奇怪的案例:

a = b = 1 * 2(emax);

然后计算c = a + b,实际结果为1 * 2 ^(emax + 1);

现在,根据标准,c不是可用的FP值;

那么系统如何在设备中存储c?

NaN

如果是,这怎么可能合理呢?

我的意思是,1 * 2 ^(emax + 1)IS(应该)是一个数字......在一般意义上......?

如果是这种情况,那么标准如何认为NaN是什么?

如果没有,那我们该怎么处理这个?

我正在考虑这样的一个:

让eM = emax + 1;

然后1d.d ... d * 2 ^(eM-1)= 1d.d ... d * 2 ^(emax)

1d.d ... d由系统具有合法的位数。

这实际上是处理非规范化数字的方式。


这里的事情是:

判断 之前 是否完成计算?

如果是前者,上述可能是一个问题吗?

另一方面,那么任务似乎是不可能的......

有没有人想过这个问题?

考虑到它的Th !!

注意:还会显示+ -INF的内容。

1 个答案:

答案 0 :(得分:1)

来自Wikipedia

可能的五个例外是:

  • 操作无效(例如,负数的平方根)(默认情况下返回qNaN )。
  • 除以零(对有限操作数的操作给出精确的无限结果,例如,1/0或log(0))(默认返回±无穷大)
  • 溢出(结果太大而无法正确表示)(默认情况下返回±无穷大(对于舍入到最近的模式))。
  • 下溢(结果非常小(超出正常范围)并且不准确)(默认情况下返回非规范化值)。
  • ...