大家好,我写了以下代码:
union endian {
char a;
int b;
} test;
char c;
test.b = 0xaabbccdd;
c = (char)test.a;
printf("0x%x\n", c);
printf("0x%x\n", test.b);
printf("0x%x\n", test.a);
printf("0x%x\n", (char)test.a);
但输出是:
0xffffffdd
0xaabbccdd
0xffffffdd
0xffffffdd
我想知道为什么0xffffff
在 char 变量之前有一些前导。