我的SSE-FPU生成以下NaN:
这种行为是否在IEEE-754标准的任何地方确定?
答案 0 :(得分:7)
NaN 有符号和有效负载,一起称为NaN 中包含的信息。<登记/>
NaNs的全部意义在于它们是“粘性的”(也许Monadic是一个更好的术语?),一旦我们在表达式中有一个NaN,整个表达式就会评估为NaN。
在评估谓词(如二元关系)时,也会特别处理NaN,例如,如果a
是NaN,则它不等于它自己。
第1点
来自IEEE 754:
诊断信息的传播需要该信息 NaN中包含的NaNs通过算术运算来保存 浮点格式转换。
第2点
来自IEEE 754:
涉及一个或两个输入NaN的每个操作,都没有信号, 应表示无异常,但如果要发送浮点结果, 应该提供一个安静的NaN,这应该是输入之一 NaN的。
没有任何浮点运算与之关联 我认为您正在寻找术语可交换,因为关联性需要至少三个操作数。
第3点
见第4点
第4点
来自IEEE 754:
无效操作是
1.对信令NaN(6.2)的任何操作
2.加法或减法 - 无穷大的幅度减法,如 (+ INFINITY)+( - INFINITY)
3.乘法 - 0×INFINITY
4.分区 - 0/0或INFINITY / INFINITY
5.余数 - x REM y,其中y为零或x为无穷大 6.如果操作数小于零,则为平方根 7.将二进制浮点数转换为整数或 溢出,无穷大或NaN排除忠实的十进制格式 以这种格式表示,否则不能用信号表示 8.通过涉及&lt;的谓词进行比较。或者&gt;,没有?,何时 操作数是无序的(5.7,表4)
第5点
来自IEEE 754:
涉及信令NaN或无效操作(7.1)的每个操作都应如果 没有陷阱发生,如果要传递浮点结果,请保持安静 NaN就是结果。
由于其相关性,可以找到IEEE 754标准here。