二進制分爲原碼、反碼、補碼
計算機實際是一律用補碼進行位運算、運算、存儲、表示的,
爲什麼負數用補碼來表示?爲了實現加減法運算法則的統一
運算過程:10進制->原碼->反碼->補碼->進行運算->補碼->反碼->原碼->10進制
可以進行的運算有如與運算(有0則0),或運算(有1則1),異或運算(相同爲0,不同爲1),左移,右移,無符號位右移
正數的原、反、補相同
負數的反碼=原碼符號位不變,其他位取反
負數的補碼=原碼符號位不變,其他位取反,然後+1=負數的反碼+1
比如:int a =3
a原碼:00000000 00000000 00000000 00000011
a反碼:00000000 00000000 00000000 00000011
a補碼:00000000 00000000 00000000 00000011
比如int b=-3
b原碼:10000000 00000000 00000000 00000011
b反碼:11111111 11111111 11111111 11111100
b補碼:11111111 11111111 11111111 11111101