[英]Printing an unsigned long in hex in c
我在 c 中打印一个大的 16 位十六进制数时遇到了麻烦
unsigned long long j = 0x89ABCDEF12893456;
printf("0x%lx\n", j); //prints: 0x12893456
printf("%#lx", j); //prints: 0x12893456
有没有办法打印整数?
根据 C 标准, C11 7.21.6 Formatted input/output functions /7
讨论了长度修饰符:
ll
(ell-ell):指定后面的d
、i
、o
、u
、x
或X
转换说明符适用于long long int
或unsigned long long int
参数; 或者后面的n
转换说明符适用于指向long long int
参数的指针。
单个l
指定long
或unsigned long
。 因此%llx
或%#llx
是您想要的格式说明符,如果您希望数字"0x%016llx"
(例如"0x%016llx"
),可能还带有输出长度和零填充。
那应该这样做。
#include <stdio.h>
int main () {
unsigned long long j = 0x89ABCDEF12893456;
printf("%#llx", j);
return 0;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.