我知道IEEE 754定义NaN具有以下按位表示:
0
或1
1
位0
位,因为该位模式是为表示无穷大而保留的当计算输入为NaN时,有效载荷会传播(就像整个NaN一样)到浮点计算的结果,尽管我不知道此传播的细节或标准是否指定了这个完成了。谁设置原始有效载荷?如果我添加两个具有不同有效负载的NaN会发生什么?
但最重要的是:我以前从未见过NaN有效载荷。这个有效载荷字段有什么用途?
答案 0 :(得分:6)
当开发出IEEE 754和NaN时,人们认为这是一个好主意。我实际上已经看到它用于存储创建NaN的原因。
今天,由于多种原因,我不会在便携式代码中使用它。你有多确定这个有效载荷能否继续存在,例如作业?如果你指定x = y,你有多确定x具有与y相同的NaN有效载荷?你有多确定它会在算术中存活下来?如果a或b是NaN,那么op b应该是一个NaN,或者如果它们都是NaN则是两个NaN中的一个。当然是这样的吗?我不愿意赌它。
答案 1 :(得分:5)
https://softwareengineering.stackexchange.com/questions/185406/what-is-the-purpose-of-nan-boxing
看看那个链接,了解js引擎如何使用南拳
答案 2 :(得分:0)
统计环境R使用NaN
负载来区分一个特定的NaN
,以表示一个统计“缺失值”,其打印为NA
。这允许“缺失”通过数值计算传播-尽管将缺失值与另一个NaN
组合时,无法预测会传播哪个。