1

考虑1.1754944E-38f - 1.1754945E-38f(两者都是正常的)。

如果HAS_SUBNORM is 1,那么答案是-1E-45f(次正常的)并且不会引发异常。

如果HAS_SUBNORM is 0,那么答案是-0.0f(次正常-1E-45f被刷新为零)。问题:应Underflow and Inexact提高?

IEEE 754-2008, 7.5 下溢:

当检测到微小的非零结果时,应发出下溢异常信号。

检测到微小:

  • 四舍五入后,或
  • 舍入前。

但是,应在哪一步执行 FTZ(清零)逻辑:

  • 在微小检测之前,或
  • 细小检测后?

问题的原因:某些硬件不支持次正规数,但在上面的示例中确实增加了。 Underflow and Inexact这意味着此类硬件在微小检测后会执行 FTZ。我想知道这是否是正确的行为。

4

0 回答 0