【发布时间】:2016-08-22 23:50:09
【问题描述】:
我有以下 C 代码。
char a[] = "\x7f\x80";
printf("0x%02x\n",a[0]);
printf("0x%02x",a[1]);
它应该打印出来,
0x7f
0x80
但是我越来越关注了?
0x7f
0xffffff80
我必须进行哪些更改才能获得输出 0x7f 0x80?
谢谢,
【问题讨论】:
-
(unsigned char)a[1] -
非常感谢!我实际上尝试了 printf("0x%02x\n",(unsigned)a[0]) 。
-
你也可以
"0x%02hhx\n". -
正如迈克尔所说。是类型提升时的符号扩展。见stackoverflow.com/questions/9715984/…
标签: c