1. 程式人生 > >無符號int、有符號int、無符號char、有符號char範圍

無符號int、有符號int、無符號char、有符號char範圍

計算機以二進位制補碼儲存數值,當一個具有符號位的資料值儲存在計算機中的時候,計算機會以最高位為符號位,其餘位數取該數絕對值的二進位制補碼來儲存。
有符號char範圍:
有符號char最大值(正數):0111 1111即127,最小值1000 0000(補碼) 即-128。
注1000 0000 -1=0111 1111 即2^7-1=128-1=127;
-128即- 2^7;
所以有符號char 取值範圍[-128,127];當超過這個取值範圍就會溢位。
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
我覺得可以形象的畫一個圖:
這裡寫圖片描述
無符號char取值範圍:
無符號最大值即1111 1111 即255,最小值為0;
注:10000 0000 - 1 = 1111 1111即2^8-1即256-1=255;
所以無符號char 取值範圍[0,255]。
有符號無符號int取值範圍


同理,有符號int 取值範圍[- 2^31 , 2^31-1];
無符號int取值範圍[ 0,2^32-1]。
這裡寫圖片描述
注:32767沒有達到有符號整型的範圍。