将十六进制字符串(长度为16或更小)转换为文字十六进制值的最佳方法(在C中)是什么?例如......
#include <stdio.h>
void main() {
char hexstring[] = "30f400010000";
printf("0x%.16x", strtoll(hexstring, NULL, 16));
}
...打印0x0000000000010000
。我需要打印出0x000030f400010000
。
我对C很新,所以我可能会遗漏一些非常明显的东西。谢谢你的帮助。
答案 0 :(得分:4)
您在printf
中使用了错误的格式说明符。
类型long long
的正确格式是以十六进制格式打印%llx
printf("0x%.16llx", strtoll(hexstring, NULL, 16));
答案 1 :(得分:2)
您的strtoll()
没问题。这是你%x
的错误:
#include <stdio.h>
void main() {
char hexstring[] = "30f400010000";
printf("0x%.16llx", strtoll(hexstring, NULL, 16));
}