こんにちは、私は次のコードを書きました:
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 変数の前に先頭がある理由を知りたいです。