一:對於正數,原碼和反碼,補碼都是同樣的,都是正數自己。
對於負數,原碼是符號位爲1,數值部分取X絕對值的二進制。
反碼是符號位爲1,其它位是原碼取反。
補碼是符號位爲1,其它位是原碼取反,未位加1。
也就是說,負數的補碼是其反碼未位加1。
移碼就是將符號位取反的補碼
1011
原碼:01011
反碼:01011 //正數時,反碼=原碼
補碼:01011 //正數時,補碼=原碼
移碼:11011 //原數+10000.net
-1011
原碼:11011
反碼:10100 //負數時,反碼爲原碼取反
補碼:10101 //負數時,補碼爲原碼取反+1
移碼:00101 //原數+10000設計
0.1101
原碼:0.1101
反碼:0.1101 //正數時,反碼=原碼
補碼:0.1101 //正數時,補碼=原碼
移碼:1.1101 //原數+1blog
-0.1101
原碼:1.1101
反碼:1.0010 //負數時,反碼爲原碼取反
補碼:1.0011 //負數時,補碼爲原碼取反+1
移碼:0.0010 //原數+1
0 的原碼get
+0: 0000 0000 -0 :1000 0000
0的補碼
+0: 0000 0000 -0: 0000 0000
0的移碼(補碼符號位取反)
+0&-0:1000 0000
二:在計算機中,實際上只有加法運算,減法運算也要轉換爲加法運算,
乘法轉換爲加法運算,除法轉換爲減法運算。class
三:在計算機中,對任意一個帶有符號的二進制,都是按其補碼的形式進行運算和存儲的。
之因此是以補碼方式進行處理,而不按原碼和反碼方式進行處理,是由於在對帶有符號位的
原碼和反碼進行運算時,計算機處理起來有問題。
而按補碼方式,一方面使符號位能與有效值部分一塊兒參加運算,從而簡化運算規則.
另外一方面使減法運算轉換爲加法運算,進一步簡化計算機中運算器的線路設計
二進制
四:補碼加、減運算公式
1):補碼加法公式
[X+Y]補 = [X]補 + [Y]補計算機
2):補碼減法公式
[X-Y]補 = [X]補-[Y]補 = [X]補 + [-Y]補
其中:[-Y]補稱爲負補,求負補的辦法是:對補碼的每一位(包括符合位)求反,且未位加1.tar
五:由補碼求原碼
已知一個數的補碼,求原碼的操做分兩種狀況:
若是補碼的符號位爲「0」,表示是一個正數,因此補碼就是該數的原碼。
若是補碼的符號位爲「1」,表示是一個負數,求原碼的操做能夠是:符號位爲1;其他各位取反,而後再整個數加1。文章