Mar*_*ens 5 floating-point nan ieee-754
我正在逻辑模拟器中设计 FPU,我需要知道哪些操作会生成两种 NaN(安静:qNaN 和信号:sNaN)
编辑:我发现像 0*infinity 这样的算术运算总是生成 qNaN(来源:http : //www.savrola.com/resources/NaN.html)。然而,我仍然不知道的是,除了将变量设置为 sNaN 的位模式之外,是否还有其他方法可以获得 sNaN。
我假设您有某种关于您打算模拟的浮点规范的教科书或规范。在那里查找定义。
对于更一般的内容,您可以阅读: http: //en.wikipedia.org/wiki/NaN
以下是维基百科关于 sNaN 的说法:
发信号 NaN
发信号 NaN 或 sNaN 是 NaN 的特殊形式,当大多数操作使用它时,应引发无效异常,然后在适当的情况下“安静”为随后可能传播的 qNaN。它们是在 IEEE 754 中引入的。对于如何使用它们有几种想法
- 如果在初始化之前使用数据,则用信号 NaN 填充未初始化的内存将产生无效异常
- 使用 sNaN 作为更复杂对象的占位符,例如:
- 下溢数字的表示
- 溢出数字的表示
- 更高精度格式的数字
- 一个复数