原碼、反碼、補碼

二進制分爲原碼、反碼、補碼

計算機實際是一律用補碼進行位運算、運算、存儲、表示的

爲什麼負數用補碼來表示?爲了實現加減法運算法則的統一

運算過程: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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章