(浮点数)#NAN("非数字")是否普遍分配了0x7F A0 00 00的值,或者它与不同的编译器有什么不同?
答案 0 :(得分:5)
没有。如果就浮动物而言普遍接受某些东西的方向发生了什么,那么这将是相关的IEEE标准,但即使这个标准允许变化:
答案 1 :(得分:1)
IEEE 754(" IEEE浮点")将具有最大指数值的所有表示和有效数中的任何非零位定义为NAN。因此,单精度的有效测试将是:
uint32_t repr;
memcpy(&repr, &f, sizeof repr);
if ((repr & 0x7fffffff) > 0x7f800000) //...
在C中,如果您不接受IEEE算术,2.0+2.0==5.0
是可能的,所以在实践中我们很多人做都会假设它。它由标准的可选附件F规定。