關於C語言補碼的問題
5
比如說一個十進制的數是255,那他存在8位當中的就應該是11111111,這個對吧?但是最高位是1了啊,不是說最高位是1的就是負數嗎?這個到底是怎麼回事?如果是出現11111111到底應該翻譯成-1還是255啊。如果是-1的話,那麼255是怎麼樣放到儲存單元的啊?請用通俗點的語言解釋······最好能在舉幾個例子。謝謝了啊
最佳回答:
8位補碼表示
00000000零
00000001~01111111正數1~127
10000000~11111111負數-128~-1
所以可以看到8位二進制數表示的范圍是-128~127
-
追問:
-
也就是說在定義為int的時候,八位2進制數范圍是-128到127,只有後七位是何數字有關,第一位是對正負進行判斷的,對嗎?
-
回答:
-
yes哈哈
-
追問:
-
原來如此,謝謝啦