64 位十六进制的便携式 printf 格式说明符?
Portable printf format specifier for 64 bit hexadecimal?
我可以使用什么 printf 格式说明符在 32/64 位和 Windows/POSIX 上以十六进制表示法打印 64 位无符号整数?我见过的最接近的是 %llX
但我不确定它是否足够便携。忽略旧编译器(例如 Visual Studio 2010)的答案是可以接受的。
<inttypes.h>
中的 PRIx64
宏正是您要找的。
这是一个字符串标记,因此您可以将其用作:
fprintf(stdout, "answer = %"PRIx64"\n", val);
由于您指定了 %llX
,您可能需要大写;使用:PRIX64
您可以使用在 header <inttypes.h>
中定义的宏 PRIx64
或 PRIX64 (for unsigned uppercase hexadecimal integer )
。
我可以使用什么 printf 格式说明符在 32/64 位和 Windows/POSIX 上以十六进制表示法打印 64 位无符号整数?我见过的最接近的是 %llX
但我不确定它是否足够便携。忽略旧编译器(例如 Visual Studio 2010)的答案是可以接受的。
<inttypes.h>
中的 PRIx64
宏正是您要找的。
这是一个字符串标记,因此您可以将其用作:
fprintf(stdout, "answer = %"PRIx64"\n", val);
由于您指定了 %llX
,您可能需要大写;使用:PRIX64
您可以使用在 header <inttypes.h>
中定义的宏 PRIx64
或 PRIX64 (for unsigned uppercase hexadecimal integer )
。