哪个浮点运算会产生静音/信号NaN?

时间:2014-12-28 20:28:58

标签: floating-point nan ieee-754

我正在逻辑模拟器中设计一个FPU,我需要知道哪些操作产生两种NaN(安静:qNaN和信令:sNaN)

编辑:我发现像0 * infinity这样的算术运算总是生成qNaNs(source:http://www.savrola.com/resources/NaN.html)。然而我还不知道的是,除了将变量设置为sNaN的位模式之外还有其他方法可以获得sNaN。

1 个答案:

答案 0 :(得分:1)

我假设你有一些关于你打算模拟的浮点规范的教科书或规范。在那里寻找定义。

对于更一般的内容,您可以阅读:http://en.wikipedia.org/wiki/NaN

这是维基百科在sNaN上所说的内容:

信号NaN [编辑] 信令NaNs或sNaNs是NaN的特殊形式,当大多数操作消耗时,它应该引发无效的异常,然后,如果合适的话,“静音”#34;进入可能随后传播的qNaN。它们是在IEEE 754中引入的。关于如何使用它们有几个想法:

如果数据在初始化之前使用,则使用信令NaN填充未初始化的内存会产生无效的异常 使用sNaN作为更复杂对象的占位符,例如: 表示已下溢的数字 已溢出的数字的表示 更高精度格式的数字 复杂的数字http://en.wikipedia.org/wiki/NaN