c++中char類型在內存中的表示以及取值範圍

char類型取值範圍:-128~127

數字在計算機中以補碼形式存儲,因爲正數的補碼就是其本身且正數符號位置0,故最大值爲01111111也就是127

而負數的補碼是按位取反 (符號位保持不變),再加1。

00000001     //-1

11111110     //取反

11111111     //+1

 

對於最小的負數-128來說

10000000   //-128(-0)

11111111    //取反

1000000    //+1

不管是原碼還是補碼, 總會出現 -0 這個值。 本來 +0 與 -0 是沒有區別的。 但對於存儲器和編譯器來講,總得充分利用每個字節吧, 更不想出現二義性。 那麼,乾脆將 -0 表示爲 -128 , 這樣一來,既增大了signed char 數值的表示範圍,又消除了 -0 的二義性,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章