嗨,大家好,我寫了下面的代碼:奇怪領先「F」時,打印出一個字符
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
我想知道爲什麼有一些領先char變量前的0xffffff
。
它是一個有符號的字符,嘗試改爲'unsigned char'。 –