1
誰能解釋爲什麼下面的代碼輸出它做什麼:符號 - 無符號轉換
char c = -1;
cout << (c << 8) << endl;
cout << ((unsigned char) c << 8) << endl;
cout << (c << 24) << endl;
cout << ((unsigned char) c << 24) << endl;
輸出:
-256
65280
-16777216
-16777216
我以爲鑄造unsigned char類型會簡單地改變位獲得方式解釋。但是,當向左移動8時,結果發生了變化。奇怪的是,當向左移動24時,情況似乎不是這樣。