原碼反碼補碼,計算機中負數的表示

2021-03-05 16:45:24 字數 3523 閱讀 4204

1樓:

一:對於正數,原碼和反碼,補碼都是一樣的,都是正數本身。

對於負數,原碼是符號位為1,數值部分取x絕對值的二進位制。

反碼是符號位為1,其它位是原碼取反。

補碼是符號位為1,其它位是原碼取反,未位加1。

也就是說,負數的補碼是其反碼未位加1。

移碼就是將符號位取反的補碼

二:在計算機中,實際上只有加法運算,減法運算也要轉換為加法運算,

乘法轉換為加法運算,除法轉換為減法運算。

三:在計算機中,對任意一個帶有符號的二進位制,都是按其補碼的形式進行運算和儲存的。之所以是以補碼方式進行處理,而不按原碼和反碼方式進行處理,是因為在對帶有符號位的原碼和反碼進行運算時,計算機處理起來有問題。

而按補碼方式,一方面使符號位能與有效值部分一起參加運算,從而簡化運算規則。另一方面使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計

四:補碼加、減運算公式

1):補碼加法公式

[x+y]補 = [x]補 + [y]補

2):補碼減法公式

[x-y]補 = [x]補-[y]補 = [x]補 + [-y]補

已知[+y]補求[-y]補的規則是全部位(含符號位)按位取反後再加1。

五:由補碼求原碼

已知一個數的補碼,求原碼的操作分兩種情況:

1. 如果補碼的符號位為「0」,表示是一個正數,所以補碼就是該數的原碼。

2. 如果補碼的符號位為「1」,表示是一個負數,求原碼的操作可以是:符號位為1;其餘各位取反,然後再整個數加1。

*************************==按你的要求以8位二進位制進行計算*****==

以8位二進位制操作為例,其運算取值範圍是-128~127。

那麼綜上所述,我們可以得到-126-100,可以看成(-126)+(-100),目的是使減法操作變為加法

-126 -> 1111 1110 ->反 1000 0001 ->補 1000 0010

100 -> 0110 0100 -> 負數求補 1001 1011+1 -> 負補 1001 1100

做補碼相加得 -126補+(-100) 補-> 1000 0010補 + 1001 1100補 ->1 0001 1110補 ->自然丟棄超出 0001 1110補

由補求原得到 0001 1110補 -> 0001 1110原

得到的結果為00011110,如果兩個負數相加如果溢位,那麼結果一定是正數,由此可知計算結果溢位。

2樓:匿名使用者

先把數轉化成二進位制,負數符號位為1正數0,此為原碼。(如-35的二進位制為10100011。注:

第一位為符號位。)原碼轉反碼:符號位為1不變,其餘取反(有1、0)。

反碼轉補碼:反碼加一。(如:

10100011→10100100)

3樓:劉政利

[-0]原=1.0000(小數點前的數字表示符號,整數用0表示,負數用1表示)

[-0]反=1.1111(負數的反碼為 除符號外,其他位全取反)[-0]補=0.0000(負數的補碼為反碼加1,在反碼的基礎上再加1以後符號為可能改變)

正數的原碼、反碼、補碼相同,都等於原碼。

4樓:做而論道

計算機中負數,都是用補碼來表示。

原碼、反碼,都是求補碼時的中間過程變數,是寫在紙上的,並不存入計算機。

可以參考:

5樓:伊布魏巍

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

6樓:王王王小六

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

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

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的方法。

7樓:匿名使用者

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

以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

8樓:匿名使用者

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

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

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

整數的原碼,反碼和補碼的表示整數的原碼反碼補碼是什麼意思??

原碼錶示 將符號位數碼化了的數,其中 用0表示,用1表示。反碼錶示 正數的反碼錶示與原碼錶示一樣 負數的反碼錶示是原碼錶示的符號位不變,數值位逐位取反。補碼錶示 正數的補碼錶示與原碼錶示一樣 負數的補碼錶示是原碼錶示的符號位不變,數值位逐位取反後最低位加1 反碼錶示最低位加1 例 63 原 0111...

計算機原碼反碼補碼的最大值和最小值各是什麼

在一個位元組裡的,原碼的我已經知道了 最大的是01111111 最小的是11111111。想知道反碼和補碼最大的和最小的 現在我們知道了計算機可以有三種編碼方式表示一個數.對於正數因為三種編碼方式的結果都相同 1 00000001 原 00000001 反 00000001 補 所以不需要過多解釋....

計算機中的三原色用哪字母表示,計算機中的三原色用哪三個字母表示?

r red,紅色 g green,綠色 b blue,藍色 有些地方用 rgba alpha alpha用來確定透明度 本質是和其他顏色混合的方式 用英語單詞的第一個字母,r代表紅色,g代表綠色,b代表藍色。補充 r代表紅色,g代表綠色,b代表藍色。r是紅,b是蘭,g是綠 光的三原色與印刷三原色 一...