原碼:
二進制定點表示法,即最高位為符號位,”0“表示正數,”1“表示負數,其余的位表示數值的大小
正數的最高位為0
負數的最高位為1
例子:
符號位 數值位
+7 0 0000111
-7 1 0000111
反碼:
正數的反碼與原碼相同,沒有任何改變
負數的反碼:與原碼的符號位不變,其他值取反,也就是0變1,1變0
例子:
符號位 數值位
+7 0 0000111
-7 1 1111000
補碼:
正數的補碼與原碼相同,沒有任何改變
負數的補碼是在反碼的基礎上加1
例子:
符號位 數值位
+7 0 0000111
-7 1 1111001
總結一下:
一個byte 的范圍為何是 -128~127
一個字節為8個bit,也就是 00000000 (8位)
當計算機為了區分正數和負數,占去了一個符號位來表示正負,所以最大的數只能表示 1111111 (7位),
二進制的1111111轉換為10進制就是+127。
請教下。。。我理解的對嗎?