printf将char输出成16进制时,为什么超过0x79的输出都为FFFFFFxx,小于0x80的输出为xx?
代码如下:
char c = 0x80, c1 = 0x79;
printf("%X %X\n", c, c1);
运行结果:
FFFFFF80 79
%X是对unsigned的输出,可是你传入的c,c1是char,类型都不同。
明白了,多谢!