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