原碼 反碼 補碼

2021-07-04 18:35:37 字數 791 閱讀 1125

原碼:原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值。0表示正數,1表示負數。

反碼:正數的反碼是其本身,即正數的反碼與原碼一樣;

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

補碼:正數的補碼是其本身,即正數的補碼與原碼一樣;

負數的補碼是在其原碼的基礎上,符號位不變,其餘各位取反,最後+1(即在反碼的基礎上+1)。進製的時候符號位也進,如-0的八位補碼就是00000000,與+0的補碼一致。

八位二進位制的補碼表示的數值範圍為-128~127,其中特殊的是-128,該值的補碼表示為10000000

理解:按照原碼反碼補碼的表示方法,原碼能夠表示的範圍其實只有-127~127,這255個數值的補碼只佔了八位二進位制的255種排列組合,10000000這種排列組合無法被使用起來,所以就規定-128的補碼為10000000.這是規定,無法按照常規演算法得出。而且該規定也符合加減運算,如補碼10000000與補碼01111111相加得到11111111,11111111該補碼表示的值為-1,恰好-128+127=-1

我們編寫程式給變數賦值時,賦的值實際上是補碼,如整型int在32位系統中佔4個位元組,給乙個int型變數賦值0x80000000時,實際上是賦值-2^31。

原碼 反碼 補碼

正數 原碼 反碼 補碼一樣 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進製 的實踐要比二或三進製計數出現的晚.摘...