補碼是什麼意思,什麼叫做補碼?

時間 2022-02-09 18:10:06

1樓:節海菡師茂

1補碼注意:此處的'=='是相等的意思。'='是賦值的意思。

在機器世界裡:

正數的最高位是符號位0,負數的最高位是符號位1。

對於正數:反碼==補碼==原碼。

對於負數:反碼==除符號位以外的各位取反。

補碼==反碼+1.

原碼==補碼-1後的反碼==補碼的反碼+1。(讀完本文後,應該能夠直觀地認識到本式的正確性)

可以輕易發現如下規律:

自然計算 :a-b==c.

計算機計算:a-b==a+b的補碼==d.

c的補碼是d.

通過此法,可以把減法運算轉換為加法運算。

所以補碼的設計目的是:

1.使符號位能與有效值部分一起參加運算,從而簡化運算規則.

2.減運算轉換為加運算,進一步簡化計算機中運算器的線路設計.

2樓:東星津風長

補碼用[x]表示機器數(原碼),x是真值(二進位制)

x=+0.1001,則[x]原=0.1001

x=-0.1001,則[x]原=1.1001

對於0,原碼中有「+0」、「-0」之分,故有兩種形式:

[+0]原=0.000...0

[-0]原=1.000...0

採用原碼錶示法簡單易懂,但它的最大缺點是加法運算複雜。這是因為,當兩數相加時,如果是同號則數值相加;如果是異號,則要進行減法。而在進行減法時還要比較絕對值的大小,然後大數減去小數,最後還要給結果選擇符號。

為了解決這些矛盾,人們找到了補碼錶示法。機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。

負數用補碼錶示時,可以把減法轉化為加法。這樣,在計算機中實現起來就比較方便

[x]補={x

1>x≥0

{2+x=2-|x|

0≥x≥-1

x=+0.1011,則[x]補=0.1011

x=-0.1011,則[x]補=10+x=10.0000-0.1011=1.0101

對於0,[+0]補=[-0]補=0.0000

(mod

2)例子中是以定點小數為例。

補碼的原理可以用鐘錶來描述

如設標準時間為4點正;一隻表已經7點了,為了校準時間,可以採用兩種方法:一是將時針退

7-4=3

格;一是將時針向前撥12-3=9格。即7-3和7+9(mod12)等價,因此,把負數用補碼錶示的mod2操作,可以把減法轉化為加法。

3樓:沙裡波特

負數,存放在計算機中,就稱為:補碼。

--------------

時鐘的時針,週期是 12小時

倒撥 3小時,也可以用正撥 9小時來代替。

9,就是-3 的補數。 補數=週期+負數。

分針倒撥 x分,也可用正撥 60-x代替。

60,是週期。

如果使用兩位十進位制數 0~99,共 100 個數,週期就是一百。

減一,就可以用 +99 代替:

28 - 1 = 27

28 + 99 = (1) 27

忽略進位(一百),兩種演算法的結果,就是相同的。

於是,99,就是-1 的補數;

同理,98,就是-2 的補數;

利用【補數】,就可把「負數」改為「正數」。

利用【補數】,就可把「相減」運算,改為「相加」。

求-1 【補數】的計算方法是:

週期 + 負數  =  100 - 1  =  99。

其他負數,也可用此公式計算。

計算機中,沒有數字。 1 和 0,都是**。

八位二進位制,稱為一個位元組。

0000 0000~1111 1111,共 256 個**。

對應的十進位制是:0~255。週期就是 256。

-1,就可以用 255 = 1111 1111 (二進位制) 代替,

-2,就可以用 254 = 1111 1110 (二進位制) 代替,

那麼,1111 1111 就稱為-1 的補碼;

同理,1111 1110 也就是-2 的補碼。

補碼的定義式,如下:

負數的補碼,就是:週期,加上該負數。

正數,沒有補碼。必須直接運算,不可變換。

求補碼,並不涉及「原碼反碼符號位 」這些垃圾知識。

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

-------------

補碼,有什麼意義?

藉助於補碼,就能用加法,代替減法運算。

那麼,計算機中,只需要有一個加法器即可。

這就簡化了硬體。

原碼和反碼,並沒有這種功能。

所以,計算機中,只是使用補碼。

原碼反碼,在計算機中,都不存在,根本就不需要討論。

什麼叫做補碼?

4樓:

補碼是用來解決負數在計算機中的表示問題的。正數的補碼就是其本身;負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1)。

例:1-1 = 1+(-1) = 00000001(原碼) + 100000001(原碼) =00000001(反碼) +11111110(反碼)  = 11111111(反碼)=10000000(原碼) = -0

用反碼運算時,結果為-0,雖然+0和-0都是0,但是看起來總是覺得怪怪的,何況0帶符號沒有任何意義,並且出現了兩個能表示0的二進位制數00000000和10000000。

這讓嚴謹的程式設計師們如何能接受,為了消除歧義,於是出現了反碼。

擴充套件資料

補碼這個編碼方案要解決的是如何在機器中表示負數,其本質意義為用一個正數來表示這個正數對應的負數。所謂-20的補碼是指:如何在機器中用補碼形式表示-20。

具體過程是這樣的:將20的二進位制形式直接寫出00010100,然後所有位取反變成11101011,再加1變成了11101100。最簡單的補碼轉換方式,不必去理會轉換過程中的符號位,只關注轉換前和最終轉換後的符號位就行。

補碼的總前提是機器數,不要忘了機器數的符號位含義,最高位為0表示正數,最高位為1表示負數,而最高位是指機器字長的最左邊一位。位元組數100b,最高位為00000100中的最左邊的0。

5樓:沙裡波特

補碼,應該是最容易理解的知識了。

小學生都可以自己摸索出來。

按照四位二進位制來說,共有 16 組**。

數字 0 的二進位制,就是 0000,

數字 1 的二進位制,就是 0001,

數字 7 的二進位制,就是 0111。

可見下表:

零和正數的補碼

負數怎麼辦?

就從 0000,依次向下減,就行了。那麼:

數字-1 的二進位制,就是 0000-1 = (1) 1111 = 15(十進位制)。

(括號中的 1,是借位,捨棄不要了。)

數字-2 的二進位制,就是 1111-1 = 1110 = 14。

數字-3 的二進位制,就是 1110-1 = 1101 = 13。

數字-8 的二進位制,就是 1000 = 8(十進位制)。

(別再減了。再減,就是 0111 = +7 了。)

可見下表:

負數的補碼

綜合到一起,就是-8~+7 的四位補碼。見下表:

四位補碼

總結:

零和正數的補碼,就是數字本身(也可轉為二進位制)。

負數的補碼,就是: 16+這個負數。

(如果是 8 位二進位制,就改用: 256 + 這個負數。)

整個推算過程,並不需要使用「原碼反碼符號位」這些垃圾。

計算時,使用十進位制,簡單方便。得出的補碼,當然也是十進位制。

如果需要二進位制,就變換一下。

補碼,很難嗎?

如果不涉及原碼反碼符號位,就一點也不難。

-----------

補碼有什麼用呢?

利用補碼,可以把減法運算,轉換成加法。

(所以,在計算機中,有一個加法器,就夠用了。)

例如:6-2 = 4,用補碼運算如下:

6 的補碼是 0110、-2 的補碼是 1110。

0110 + 1110 = (1) 0100 (= 4 的補碼)

(括號中的 1,是進位,捨棄不要了。)

注意:

如果運算結果超出了-8~+7 的範圍,結果將是錯的。

這種現象稱為「溢位」。

再注意一下:進位,並不等於溢位。

---------

因為補碼的這個特性,所以,在計算機中,只是使用補碼存放資料。

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

原碼反碼的用途,只是用於「筆算」。

其實,筆算的方法,並非只有「取反加一」。

原碼反碼,只是磚家為了增加收入,瞎編的垃圾而已。

所以,大家,完全不必在原碼反碼 上浪費時間精力。

但是,考試怎麼辦?

呃 ...,千萬別跟老師較勁,他怎麼講,你就怎麼答吧。

6樓:

0的補碼是00000000。

假設機器的位長為0,正數x的最高位為0,其餘位為數x的值

(8位長為例)

[+0]補= 0 000 000

負數x的補碼錶示為2^n-|x|

[-0]補 = 2^n = 10000 0000 = 0000 0000

綜合[0]補=0000 0000

計算機中的符號數有三種表示方法,即原碼、反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號位都是用0表示「正」,用1表示「負」,而數值位,三種表示方法各不相同。

在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路。

求給定數值的補碼分以下兩種情況:

正數正整數的補碼是其二進位制表示,與原碼相同

負數求負整數的補碼,將其對應正數二進位制表示所有位取反(包括符號位,0變1,1變0)後加1 。

同一個數字在不同的補碼錶示形式中是不同的。比如-15的補碼,在8位二進位制中是11110001,然而在16位二進位制補碼錶示中,就是1111111111110001。以下都使用8位2進位制來表示。

7樓:做而論道

計算機裡面,只有加法器,沒有減法器,

減法,必須用加法來完成。

對於 100 以內的十進位制數,《減1》,就可以用《加 99》代替。

比如 25 - 1 = 24,可以寫成 25 + 99 = (1)24。

限定了兩位數,-1 和 +99 是等效的。

同樣,-2,可以用 +98 代替。

……它們之間,稱為《補數》。

100 稱為《模》。

利用《模》,求某個負數的《補數》,小學生都會。

---------------------------對於 8 位二進位制數:0000 0000~1111 1111(255),模為256。

-1,可以用 255(1111 1111)代替。

-2,可以用 254(1111 1110)代替。

……這些二進位制數,就稱為負數的《補碼》。

已知一個負數,求其補碼,用模計算一下,大家都能算出來。

求補碼,完全可以用十進位制數來計算。

原碼、反碼、求反加

一、符號位,這些都是用不著的,瞎忽悠人的。

什麼叫做是什麼意思,svc是什麼意思

svc是switching virtual circuit的縮寫,意思是交換虛擬電路。資訊包交換虛擬線路 節點之間只在需要傳送資料時才建立邏輯連結 面向連線的網路中,從一臺計算機到另一臺計算機的連線。svc是虛擬的,因為路徑是從路由表中得到的,而不是建立物理線路。svc是交換的,因為它能按需要建立,...

什麼是原碼 反碼 補碼 移碼 crc迴圈冗餘碼

原碼 反碼和補碼 在計算機內,定點數有3種表示法 原碼 反碼和補碼所謂原碼就是前面所介紹的二進位制定點表示法,即最高位為符號位,0 表示正,1 表示負,其餘位表示數值的大小。反碼錶示法規定 正數的反碼與其原碼相同 負數的反碼是對其原碼逐位取反,但符號位除外。補碼錶示法規定 正數的補碼與其原碼相同 負...

什麼叫做審計,審計是什麼意思

高頓教育 審計師是專門從事檢查並進一步證實公司會計賬目和報告的正確性 合理性和可接受性的專業人員。審計是什麼意思? 高頓財經教育 審計師是專門從事檢查並進一步證實公司會計賬目和報告的正確性 合理性和可接受性的專業人員。審計到底是做什麼的? 註冊會計師 審計的工作一般包括哪些 審計就是對被審計單位的經...