一,C語言整數類型轉換的一點注意事項:
1, 長類型到短類型的轉換,採用直接截斷的方式,如int -> short -> char等。
int i=0xf1238765;
short s1=(short)i; // s1=0x8765
unsigned short s2 = i; // s2=0x8765
2, 短類型到長類型的轉換,要分兩種情況進行。如果短類型是無符號整數,則長類型的高位部分填0;如果短類型是有符號整數,則長類型的高位部分填短類型的符號位。例如:
int i=0xf1238765;
short s1 = i; // s1=0x8765 (長 -> 短)
unsigned short s2 = i; // s2=0x8765 (長 -> 短)
int j1 = s1; // j1=0xffff8765 (短 -> 長)
int j2 = s2; // j2=0x00008765 (短 -> 長)
這裡用了十六進制的方式賦值,如果想看每個變數的真實值,最好用調試器直接查看記憶體。