char是C/C++整型數據中比較古怪的一個,其它的如int/long/short等不指定signed/unsigned時都默認是signed,但char在標準中是unsigned,編譯器可以實現為帶符號的,也可以實現為不帶符號的,有些編譯器如pSOS的編譯器,還可以通過編譯開關來指定它是有符號數還是無符號數。
unsigned char在計算機中使用補碼存儲,例如
unsigned char a=0xF7;
a在計算機中存儲的方式為:11110111
int/unsigned int變數賦值給unsigned char變數是會發生位元組截斷(9位和高於9位的將被程序自動丟棄)
unsigned int a = 0xFFFFFFF7;
unsigned char b = (unsigned char)a;
此時b的值為 0xF7.