64位十六进制数的可移植printf格式说明符是什么?

9

我应该使用哪个printf格式说明符来以16进制在32/64位和Windows/POSIX系统下打印64位无符号整数?我看到最接近的是%llX,但我不确定它是否足够通用。忽略旧编译器(例如Visual Studio 2010)的答案也是可接受的。

2个回答

10
<inttypes.h>中,PRIx64宏就是你正在寻找的内容。它是一个字符串标记,所以可以这样使用: fprintf(stdout, "answer = %"PRIx64"\n", val); 由于您指定了%llX,可能想要大写字母; 使用:PRIX64

就是这样。我正在查看的inttypes参考文献只有32位的PRIx宏,原因不明。 - thmiller
1
printf("答案 = %#018"PRIx64"\n", val) 以打印前导零 - Daniel

1
你可以使用在头文件 <inttypes.h> 中定义的宏 PRIx64PRIX64 (用于无符号大写十六进制整数)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接