这些十六进制数字在Rafael的帖子中可能是正确的,但是我建议使用一种更语义的方式。
参见http://en.cppreference.com/w/cpp/types/numeric_limits/quiet_NaN
#include <limits>
double nan1 = std::numeric_limits<double>::quiet_NaN();
double nan2 = std::numeric_limits<double>::signaling_NaN();
Run Code Online (Sandbox Code Playgroud)
请注意,有两种NaN。
您可以将浮点数转换为 32 位整数并将它们设置为之间的任何数字
0x7FC00000 and 0x7FFFFFFF or
0xFFC00000 and 0xFFFFFFFF
Run Code Online (Sandbox Code Playgroud)
对于双打转换为 u64 并将它们设置为之间的任何数字
0x7FF8000000000000 and 0x7FFFFFFFFFFFFFFF or
0xFFF8000000000000 and 0xFFFFFFFFFFFFFFFF
Run Code Online (Sandbox Code Playgroud)