原碼,反碼,補碼總是搞不清楚 寫個文章幫助記憶

2021-09-19 03:05:52 字數 1194 閱讀 8685

原碼,顧名思義就是現實生活中表示的碼,原來的碼。其中最高位為符號位,0代表正數,1代表負數

正數的反碼,就是其本身

負數的反碼,就是在原碼的基礎上,符號為不變,其餘各位取反

正數的補碼,就是其本身

負數的補碼,就是在原碼的基礎上,符號位不變,其餘各位取反後+1,即反碼+1 

以8位二進位制為例

0000 0001     1的原碼

1000 0001    -1的原始碼

進而,8位二進位制可表示[1111 1111, 0111 1111],即[-127, 127]

例1:     

5 -1 的運算

即 5 + (-1)

0000 0101      ---       5   二進位制原碼 

1000 0001      ---      -1   二進位制原碼 

計算機不管這些,我只要補碼(相加,計算機表示只會+ 謝謝),其他愛誰誰

0000 0101      ---       5   二進位制原碼 (搬下來方便取反)

0000 0101      ---       5   補碼   正數的補碼,就是其本身

1000 0001      ---      -1   二進位制原碼 (搬下來方便取反)

1111 1111        ---      -1    補碼    負數 符號位不變其餘按位取反,再+1

補碼相加↓

0000 0101       ---       5 

1111 1111         ---      -1 

1 0000 0100    -- 相加的結果 溢位位不要了

0000 0100  =  4

例2:     3 -5 

即 3 + (-5)

0000 0011    ----  3  原碼

1000 0101    ---- -5 原碼

0000 0011    ----  3  補碼

1111 1011    ---- -5  補碼

相加1111 1110   ----補碼相加結果(負的) 

1000 0010  --- 負數 符號位不變其餘按位取反,再+1 (逆向算回去了-二進位制原碼)

1000 0010   = -2 

原碼 反碼 補碼

正數 原碼 反碼 補碼一樣 7 原 0 0000111 b 7 反 0 0000111 b 7 補 0 0000111 b 負數 原碼就是原來的表示方法 反碼是除符號位 最高位 外取反 補碼 反碼 1 7 原 1 0000111 b 7 反 1 1111000 b 7 補 1 1111001 b 當...

原碼 反碼 補碼

正數 原碼 反碼 補碼一樣 7 原 0 0000111 b 7 反 0 0000111 b 7 補 0 0000111 b 負數 原碼就是原來的表示方法 反碼是除符號位 最高位 外取反 補碼 反碼 1 7 原 1 0000111 b 7 反 1 1111000 b 7 補 1 1111001 b 當...

原碼 反碼 補碼

數值在計算機中表示形式為機器數 計算機只能識別0和1,使用的是二進位制,而在日常生活中人們使用的 是十進位制,正如亞里斯多德早就指出的那樣,今天十進位制的廣泛採用,只不過我們絕大多數人生來具有10個手 指頭這個解剖學事實的結果.儘管在歷史上手指計數 5,10進製 的實踐要比二或三進製計數出現的晚.摘...