C
数值 | Numerics

NAN

NAN

在头文件中定义
#define NAN /*implementation defined*/(since C99)

NAN扩展为类型的常量表达式,float其值为安静的非数值(QNaN)值。如果实现不支持QNaNs,则不定义此宏常量。

用于打印NaN的样式是实现定义的。

笔记

有许多不同的NaN值,由它们的有效载荷和它们的符号位来区分。由宏生成的有效载荷的内容和NaN的符号位NAN是实现定义的。

显示用于打印NaN和IEEE格式的样式。

#include <stdio.h> #include <math.h> #include <stdint.h> #include <inttypes.h> #include <string.h> int main(void) { double f = NAN; uint64_t fn; memcpy(&fn, &f, sizeof f printf("NAN: %f %" PRIx64 "\n", f, fn }

可能的输出:

NAN: nan 7ff8000000000000

参考

  • C11标准(ISO / IEC 9899:2011):