int 8 佔一個位元組,為什麼範圍是-128 到 127?

zhangsen發表於2019-07-03
由於有符號位的存在,所以負數的值,最低可以到-128.  

負數情況:負數佔一位

原碼  1000 0000

反碼  1111 1111

補碼  1000 0000  換算成二進位制  -128

正數情況:正數佔一位

原碼  0111 1111

反碼  0111 1111

補碼 0111 1111 換算成二進位制  127

對於有符號的而言

二進位制的最高位是符號位:0表示正數,1表示負數

1 =>   [0000 0001]

-1=>   [1000 0001]

正數的原碼、反碼、補碼都一樣

負數的反碼 = 它的原碼符號位不變,其他取反(0->1 , 1->0)

負數的補碼 = 它的反碼+1

 1 ==> 原碼 [0000 0001]   反碼[0000 0001]   補碼[0000 0001]

-1 ==> 原碼 [1000 0001]   反碼[1111 1110]   補碼[1111 1111]

0的反碼,補碼都是0

在計算機運算的時候,都是以補碼的方式來計算的

相關文章