疑惑
以short類型爲例,其在16位、32位、64位編譯器中均佔2個字節(Byte),即16個位(bit)
分析
在計算機中正負數都是用其補碼形式存儲的
解釋
有符號short類型中,正數部分(另外包括了0)的取值範圍位爲 0 ~ 2^15 -1 , 其原碼、反碼、補碼相同,均從0000 0000 0000 0000 …… 0111 1111 1111 1111,可看出數值從0到32767之間遞增;
補碼中零的編碼本該只有一個,也就是補碼中會比原碼多一個0的編碼出來,這個編碼就是 1000000000000000,因爲任何一個原碼都不可能在轉成補碼時變成1000000000000000。所以,人爲規定 1000000000000000這個補碼編碼爲-32768;
所以,補碼系統中,範圍是-32768~32767;
- 二進制原碼的最小值是1111111111111111(-32767)
- 二進制補碼的最小值是1000000000000000( -32768)
- 二進制補碼1111111111111111的值是 -1