原碼,反碼,補碼,移碼計算規則

2021-06-04 23:12:25 字數 1506 閱讀 5914

一:對於正數,原碼和反碼,補碼都是一樣的,都是正數本身。

對於負數,原碼是符號位為1,數值部分取x絕對值的二進位制。

反碼是符號位為1,其它位是原碼取反。

補碼是符號位為1,其它位是原碼取反,未位加1。

也就是說,負數的補碼是其反碼未位加1。

移碼就是將符號位取反的補碼

1011

原碼:01011

反碼:01011 //正數時,反碼=原碼

補碼:01011 //正數時,補碼=原碼

移碼:11011 //原數+10000

-1011

原碼:11011

反碼:10100 //負數時,反碼為原碼取反

補碼:10101 //負數時,補碼為原碼取反+1

移碼:00101 //原數+10000

0.1101

原碼:0.1101

反碼:0.1101 //正數時,反碼=原碼

補碼:0.1101 //正數時,補碼=原碼

移碼:1.1101 //原數+1

-0.1101

原碼:1.1101

反碼:1.0010 //負數時,反碼為原碼取反

補碼:1.0011 //負數時,補碼為原碼取反+1

移碼:0.0010 //原數+1

0 的原碼
+0:  0000 0000         -0 :1000 0000
0的補碼
+0: 0000 0000          -0: 0000 0000
0的移碼(補碼符號位取反)
+0&-0:1000 0000
二:在計算機中,實際上只有加法運算,減法運算也要轉換為加法運算,

乘法轉換為加法運算,除法轉換為減法運算。

三:在計算機中,對任意乙個帶有符號的二進位制,都是按其補碼的形式進行運算和儲存的。

之所以是以補碼方式進行處理,而不按原碼和反碼方式進行處理,是因為在對帶有符號位的

原碼和反碼進行運算時,計算機處理起來有問題。

而按補碼方式,一方面使符號位能與有效值部分一起參加運算,從而簡化運算規則. 

另一方面使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計 

四:補碼加、減運算公式

1):補碼加法公式

[x+y]補 = [x]補 + [y]補

2):補碼減法公式

[x-y]補 =  [x]補-[y]補 = [x]補 + [-y]補

其中:[-y]補稱為負補,求負補的辦法是:對補碼的每一位(包括符合位)求反,且未位加1.

五:由補碼求原碼

已知乙個數的補碼,求原碼的操作分兩種情況:

   如果補碼的符號位為「0」,表示是乙個正數,所以補碼就是該數的原碼。

   如果補碼的符號位為「1」,表示是乙個負數,求原碼的操作可以是:符號位為1;其餘各位取反,然後再整個數加1。

原碼,補碼,反碼,移碼

為什麼有這些碼 定義機器字長為n,若數值x是純整數 若數值x是純小數,對純小數的原碼計算是先將其轉換為二進位制 必須的 例 若機器字長為8,則 1 原 0 0000001 1 原 1 0000001 7 原 0 0000111 127 0 1111111 127 原 1 1111111 7 原 1 ...

原碼,反碼,補碼,移碼

移碼 又叫增碼 是符號位取反的補碼,先將符號位取反,再取補碼,意思就是正數只將 變為1,負數將 變為0,再取補 x 1011 x 移 11011 符號位 1 表示正號 x 1011 x 移 00101 符號位 0 表示負號 一般用做浮點數的階碼,引入的目的是為了保證浮點數的機器零為全0。一 原碼 求...

原碼 反碼 補碼 移碼

如果機器字長為n,那麼乙個數的原碼就是用乙個n位的二進位制數,其中最高位為符號位 正數為0,負數為1。剩下的n 1位表示概數的絕對值。例如 x 101011 x 原 00101011 x 101011 x 原 10101011 位數不夠的用0補全。ps 正數的原 反 補碼都一樣 0的原碼跟反碼都有兩...