原始碼反碼與補碼,原碼 反碼和補碼

時間 2023-03-08 10:50:05

1樓:匿名使用者

8位2進製原碼反碼補碼表示法:第一位是符號位,正數為0負數為1-67的原碼是11000011,換成反碼符號位不變,其他各位依次求反:

10111100,換成補碼只在反碼基礎上末位加1:

55的原碼00110111,正數原碼反碼補碼相同。

補碼實現55-67:00110111

把這個補碼末位減一,符號位不變各位取反得到結果的原碼表示:10001100,轉換成十進位制剛好等於-12,驗證了結果11110100是正確的。

2樓:做而論道

假定某台計算機的機器數占8位,使用補碼實現這兩個數的加法運算:55 - 67。

計算:-67 + 55=?

換成八位補碼,再相加:[-67]補 =1011 1101+ [55]補 =0011 0111

1111 0100 = 12]補即:-67 + 55 = 12。

3樓:沈苗公巧凡

原始碼就是程式的源**。

這個沒法舉例。

不過我猜你想問的是原碼。原碼就是指令轉換成原始的機器碼。

反碼是2進製機器碼的一種操作。

比如求00110011的反碼就是11001100補碼就是計算機裡儲存指令都用補碼。

舉例就是9的原碼是00001001

反碼是11110110

補碼是00001001

(如果是-9)那麼符號位變成1

就是10001001

4樓:沙里波特

帶符號數,有三種表示方法,即:原碼、反碼和補碼。

但是,在計算機系統中,數值一律用補碼來表示和儲存。

所以,在計算機系統中,原碼和反碼,都是不存在的。

對於八位計算機:

數字 0 的存放形式是:0000 0000。

數字+1,就加上一:0000 0001。

數字+2,就再加一:0000 0010。

數字+3,依此類推:0000 0011。

。。。正數,你就依次加一。。。

+55,存放就是:0011 0111。

負數,就是從零,依次減一。

數字-1,也就是:0000 0000-1,保留八個位,可得:1111 1111 = 255(十進位制)。

數字-2,就再減一:1111 1110 = 254。

數字-3,繼續減一:1111 1101 = 253。

。。。繼續依次減一。。。

-67,就減到了:1011 1101。

以上,是數值在計算機中的存放形式,即:補碼。

八位補碼的計算公式:

負數的補碼: 2^8 - 該負數

(如果需要二進位制,你就再轉換一下。)

正數,不需要變換,也不可以變換。

所以,正數,不存在補碼。

補碼,完全是由二進位制加一減一自然形成的,和原碼反碼沒有任何關係。

計算: 55-67 = 12。

在計算機中,要用補碼代替負數,把減法轉換為加法運算。

計算過程如下:

-67 補碼=

相加

得: (0)= -12 的補碼。

捨棄進製,只保留八位,結果完全正確。

原碼和反碼,都沒有簡化硬體的功能。

求某乙個數值的補碼,也不需要原碼和反碼。

所以,原碼和反碼,都沒有任何用處。

在計算機中,原碼和反碼,也不存在。

那麼,原碼和反碼,都是多少? 管它呢!

原碼、反碼和補碼

5樓:沙里波特

帶符號的數字,可變成各種**,見圖:

但是,原碼和反碼,在計算機中,都是不存在的。

只有補碼,才是實用的編碼。

其變換規律,可以自己摸索出來。

6樓:做而論道

補碼,其實,就是乙個【代替負數進行運算】的正數。

用補碼代替負數之後,計算機中,就不存在負數了。

隨之而來的是,計算機中,也就沒有減法運算了。

即:借助於補碼,能夠簡化運算。也就可以簡化硬體。

補碼(乙個正數),怎麼就能「代替負數」呢?

且看 2 位 10 進製的運算:

28 + 99 = 一百) 27

只要忽略進製(10^2),+99 和-1 的功能,就是相同的。

此時,就稱 +99 是-1 的補數。

同理,+98 就是-2 的補數。

求補數的計算公式,你也可以推導出來:

補數 = 負數 + 10^n, n 是補數的位數。

計算機用二進位制,補數,改稱為:補碼。

對於 8 位 2 進製來說,應按照如下公式來求補碼:

計算公式: 補碼= 負數 + 2^n, n 是補碼的位數。

8 位 2 進製,總共可以構成 2^8 = 256 組補碼。

其中,包括有 128 個負數的補碼。

如下:[-1]補 = 2^8-1 = 255 = 1111 1111 (二進位制)。

[-2]補 = 2^8-2 = 254 = 1111 1110 (二進位制)。

[-128]補 = 256-128 = 128 = 1000 0000。

正數,不可變換,必須直接參加運算。

所以,正數,不存在補碼。

原碼和反碼,都沒有簡化硬體的功能。

所以,計算機中,只用補碼,根本就不用原碼和反碼。

求補碼,千萬不要走「原碼反碼符號位取反加一」這條路。

否則,你就不會知道: 何? 為? 補? 碼?

用八位補碼計算:7-5 = 2。

[-5]補 =

相加

進製,是超出 8 位的,捨棄即可。

由此次計算,也可以看到:

使用了補碼,減法,就轉換成了加法。

原碼反碼,都沒有這種功能。

所以,計算機中,根本就沒有它們的影子。

7樓:青染漣漪

原碼:在用二進位制原碼表示的數中,符號位為0表示正數,符號位為1表示負數,其餘各位表示數值部分。如:10000010表示-2,00000010表示2。

反碼: 反碼的定義如下:

⑴對於正數,它的反碼表示與原碼相同。即[x]反=[x]原。

⑵對於負數,則除符號位仍為「1」外,其餘各位「1」換成「0」,「0」換成「1」,即得到反碼[x]反。例如[11101001]反=10010110。

⑶對於0,它的反碼有兩種表示:[+0]反=00…0 [-0]反=11…1

補碼:正數的補碼就是該正數本身。

[01100100]補=01000100

對於負數:符號位不變,反碼加1。

[10100100]補=11011011

[+0]補=[-0]補=00…0。

希望我的能幫到你。

原始碼-反碼-補碼 的轉換規則

8樓:蒲慕郯鴻禧

正數的原碼,補碼,反碼都相同,都等於它本身負數的補碼是:符號位為1,其餘各位求反,末位加1反碼是:符號位為1,其餘各位求反,但末位不加1也就是說,反碼末位加上1就是補碼。

小數的原碼,反碼,補碼,負小數的原碼,補碼,反碼和移碼怎麼算,如 0 3125 10進製

公孫曜兒板妙 化為2進製是整數部分除以二知道變為1 小數部分乘以2直到變為1 符號位0表示正1表示負 正數 原碼 補碼 負數 原碼 正數部分 去掉負號 的二進位制值,且符號位 最左邊的位元位 為1反碼 正數部分 去掉負號 的二進位制值,按位取反補碼 反碼 1小數點依舊用點 定點數所謂定點數是指小數點...

98, 98,79, 43的原碼反碼補碼

98 原碼 01100010 反碼 01100010 補碼 01100010 98 原碼 11100010 反碼 10011101 補碼 10011110 76 原碼 01001100 反碼 01001100 補碼 01001100 76 原碼 11001100 反碼 10110011 補碼 101...

什麼是補碼,如何轉換反碼 補碼 原碼?

原碼 補碼 反碼之間是怎樣轉換的?一 正整數的原碼 反碼 補碼完全一樣,即符號位固定為0,數值位相同。二 負整數的符號位固定為1,由原碼變為補碼時,規則如下 1 原碼符號位1不變,整數的每一位二進位制數字求反,得到反碼。2 反碼符號位1不變,反碼數值位最低位加1,得到補碼。方法 1 正整數的原碼,反...