Char指向十六进制值

时间:2017-03-03 04:24:18

标签: c

我有一个指向Char的指针,其中存储了'done'值。

我认为'done'的十六进制值应为:656e6f64

但是在尝试我的测试代码时:

unsigned int test = (unsigned int) *label;
fprintf(stderr, "  label is %08x \n", mop);

它会打印出这样的值:

00000064

无法弄清楚我做错了什么,是不是在转变?我投错了吗?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我现在能想到的最简单的选择是 -

int i;
for (i = 0; label[i] != '\0'; i++)
    printf("%02x", (int)label[i]);
printf("\n");

这应该准确地给出你想要的东西。此外,任何代表性问题都不应该出现。