原碼,顧名思義就是現實生活中表示的碼,原來的碼。其中最高位為符號位,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進製 的實踐要比二或三進製計數出現的晚.摘...