C — 十六进制字符串到文字十六进制值
C — Hex string to literal hex value
将十六进制字符串(长度不超过 16)转换为十六进制文字值的最佳方法(在 C 中)是什么?例如...
#include <stdio.h>
void main() {
char hexstring[] = "30f400010000";
printf("0x%.16x", strtoll(hexstring, NULL, 16));
}
...打印 0x0000000000010000
。我需要这个来打印 0x000030f400010000
.
我是 C 的新手,所以我可能遗漏了一些非常明显的东西。感谢您的帮助。
你的 strtoll()
没问题。是你的%x
错了:
#include <stdio.h>
void main() {
char hexstring[] = "30f400010000";
printf("0x%.16llx", strtoll(hexstring, NULL, 16));
}
您在 printf
中使用了错误的格式说明符。
类型 long long
以十六进制打印数字的正确方法是 %llx
printf("0x%.16llx", strtoll(hexstring, NULL, 16));
将十六进制字符串(长度不超过 16)转换为十六进制文字值的最佳方法(在 C 中)是什么?例如...
#include <stdio.h>
void main() {
char hexstring[] = "30f400010000";
printf("0x%.16x", strtoll(hexstring, NULL, 16));
}
...打印 0x0000000000010000
。我需要这个来打印 0x000030f400010000
.
我是 C 的新手,所以我可能遗漏了一些非常明显的东西。感谢您的帮助。
你的 strtoll()
没问题。是你的%x
错了:
#include <stdio.h>
void main() {
char hexstring[] = "30f400010000";
printf("0x%.16llx", strtoll(hexstring, NULL, 16));
}
您在 printf
中使用了错误的格式说明符。
类型 long long
以十六进制打印数字的正确方法是 %llx
printf("0x%.16llx", strtoll(hexstring, NULL, 16));