計算機的原碼反碼補碼是怎麼回事?可以舉例說

2021-05-30 09:23:47 字數 1587 閱讀 6802

1樓:王王王小六

原碼、反碼和補碼是計算機中對

數字二進位制的三種表示方法。

1、原碼

原碼(true form)是一種計算機中對數字的二進位制定點表示方法。原碼錶示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:

+0和-0),其餘位表示數值的大小。

例如:用8位二進位制表示一個數,+11的原碼為00001011,-11的原碼就是10001011。

2、反碼

反碼是數值儲存的一種,多應用於系統環境設定,如linux平臺的目錄和檔案的預設許可權的設定umask,就是使用反碼原理。反碼的表示方法是:正數的反碼與其原碼相同;負數的反碼是對正數逐位取反,符號位保持為1。

例如:[+7]反= 0 0000111 b;

[-7]反= 1 1111000 b。

3、補碼

正數:正數的補碼和原碼相同。負數:

負數的補碼則是符號位為「1」。並且,這個「1」既是符號位,也是數值位。數值部分按位取反後再在末位(最低位)加1。

也就是「反碼+1」。

例如:[+7]補= 0 0000111 b;

[-7]補= 1 1111001 b。

擴充套件資料

原碼、反碼、補碼的轉換方法如下:

(1) 已知原碼,求補碼。

例:已知某數x的原碼為10110100b,試求x的補碼和反碼。

首先通過原碼的首位確定該數字的正負,若為正數,反碼與原碼相同,補碼比原碼在末尾加1;若為負數,求其反碼時,符號位不變,數值部分按位求反;求其補碼時,再在其反碼的末位加1。

(2)已知補碼,求原碼。

按照求負數補碼的逆過程,數值部分應是最低位減1,然後取反。但是對二進位制數來說,先減1後取反和先取反後加1得到的結果是一樣的,故仍可採用取反加1的方法。

2樓:匿名使用者

計算機以二進位制補碼儲存資料

以16位機器為例:

比如83的二

進位制碼為:0000 0000 0101 0011由於正數的原始碼、反嗎、補碼,上面的既是原始碼,也是反碼和補碼下面通過負數講解原始碼、反碼、補碼之間的關係以-83為例

先求出-83絕對值的原始碼:0000 0000 0101 0011計算機區分正負數通過判斷最高位符號位,1為負數、0為正數那麼-83的原始碼為:1000 0000 0101 0011反碼在原始碼基礎上按位取反,符號位不變:

1111 1111 1010 1100

補碼在反碼的基礎上加1:1111 1111 1010 1101補碼轉原始碼:補碼基礎上按位取反後加一,符號位在取反時不變,加一時最高位符號位有進位的,進位忽略

取反:1000 0000 0101 0010加1:1000 0000 0101 0011

3樓:匿名使用者

十進位制→ 二進位制(怎麼算?要是不知道看計算機基礎的書去)47   → 101111

有符號的整數    原碼    反碼    補碼47      00101111  11010000  00101111(正數補碼和原碼相同)

-47      00101111  11010000  11010001(負數補碼是在反碼上加1)

計算機中原碼反碼補碼之間的關係,計算機的原碼,反碼,補碼是怎麼回事?可以舉例說明嗎

原碼 就是原碼,真實的碼 反碼 在原碼的基礎上,符號位不變,數值位按位取反補碼 1 正數的補碼 與原碼相同。例1 9的補碼是00001001。2 負數的補碼 符號位為1,其餘位為該數絕對值的原碼按位取反然後整個數加1。計算機的原碼,反碼,補碼是怎麼回事?可以舉例說明嗎?原碼 反碼和補碼是計算機中對 ...

138的補碼怎麼求啊,求 138 10 原碼 反碼和補碼。要求有詳細的步驟。

正整數的補碼與原始碼一致,負整數的補碼,把原始碼取反,再 1。數在計算機中是以二進位制形式表示的。數分為有符號數和無符號數。原碼 反碼 補碼都是有符號定點數的表示方法。一個有符號定點數的最高位為符號位,0是正,1是副。以下都以8位整數為例,原碼就是這個數本身的二進位制形式。假定2位元組 55 原馬二...

計算機中關於帶符號整數的反碼 補碼 真值和原碼

原碼 是指將最高位作為符號位 0表示正,1表示負 其它數字位代表數值本身的絕對值的數字表示方式。例如 數字6 在計算機中原碼錶示為 0 000 0110 其中,第一個數字0是符號位,0表示正數,0 000110是數字6的二進位制資料表示。數字 6 在計算機中原碼錶示為 1 000 0110 以上是在...