gpt4 book ai didi

C 打印十六进制字节

转载 作者:太空宇宙 更新时间:2023-11-04 08:01:44 25 4
gpt4 key购买 nike

我在 C 程序中有一个代码,其中包含我想要迭代的十六进制数据,例如打印出每个十六进制字节:

char input[] = "\x31\xd2\xb2\x30";
for (int i = 0; i < strlen(input); i++) {
printf("%02X\n", input[i]);
}

但是,输出不是我所期望的,例如上面的打印:

31
FFFFFFD2
FFFFFFB2
30

我还尝试将输出转换为 (unsigned int),但我收到了相同的输出。

有人可以指出这个简单脚本的问题吗?

最佳答案

传递给 printf 的参数是符号扩展的,除非你将它们转换为像这样的无符号类型:

printf("%02X\n", (unsigned char)input[i]);

关于C 打印十六进制字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46145173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com