char是八位嗎?
是的
char類型占1字節,就是8位,所能存儲的正整數是 0111 1111,即127。如果將 int 型的整數i= 128 賦予ch,會產生溢出。因128是 int 型,占 4 字節,二進制代碼為 0000 0000 0000 0000 0000 0000 1000 0000.。
若將它賦給一個只有8位的char 類型變量,只能將低8位的1000 0000 放進去,其他的都會被刪掉。整數在計算機中都是以補碼的形式存儲的,此時1000 0000 在計算機的眼里,是一個補碼,最左邊是 1 表示負數,補碼1000 0000 所對應的十進制是 -128,所以最后輸出的就是 -128。因此溢出會使得最大正整數變成最小負整數。