計算機中的補碼是什麼意思,能給最好給幾個例子

2023-01-15 08:35:05 字數 6264 閱讀 4276

1樓:匿名使用者

補碼(two's complement) 1、在計算機系統中,數值一律用補碼來表示(儲存)。 主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。

另外,兩個用補 碼表示的數相加時,如果最高位(符號位)有進製,則進製被捨棄。 2、補碼與原碼的轉換過程幾乎是相同的。

正數的補碼。

與原碼相同。

【例1】+9的補碼是00001001。(備註:這個+9的補碼說的是用8位的2進製來表示補碼的,補碼表示方式很多,還有16位2進製補碼表示形式,以及32位2進製補碼表示形式,64位進製補碼表示形式等。

)負數的補碼。

負數的補碼等於其絕對值的原碼各位取反,然後整個數加1的數值。

同乙個數字在不同的補碼表示形式裡頭,是不同的。比方說-15的補碼,在8位2進製裡頭是11110001,然而在16位2進製補碼表示的情況下,就成了1111111111110001。在這篇補碼概述裡頭涉及的補碼轉換預設把乙個數轉換成8位2進製的補碼形式,每一種補碼表示形式都只能表示有限的數字。

【例2】求-7的補碼。

因為給定數是負數,則符號位為「1」。

後七位:-7的原碼(10000111)→按位取反(11111000)(負數符號位不變)→加1(11111001)

所以-7的補碼是11111001。

注:數0的補碼表示是唯一的:

+0的補碼=+0的反碼=+0的原碼=00000000

-0的補碼=11111111+1=00000000(mod 2的8次方)

應用。已知乙個數的補碼,求原碼的操作分兩種情況:

⑴如果補碼的符號位為「0」,表示是乙個正數,其原碼就是補碼。

⑵如果補碼的符號位為「1」,表示是乙個負數,那麼求給定的這個補碼的補碼就是要求的原碼。

【例3】已知乙個補碼為11111001,則原碼是10000111(-7)。

因為符號位為「1」,表示是乙個負數,所以該位不變,仍為「1」。

其餘七位1111001取反後為0000110;

再加1,所以是10000111。

摘自百科:http://baike.

?url=tqtlc7wjlmqp6tyi667qmzekmvv3y1yyei_fslt3fqk73a1mxt6vshdkeipams-a

希望能幫您,望!

2樓:做而論道

計算機中的補碼是什麼意思?

計算機中的補碼,就是「代替負數」的正數。

用補碼(正數)代替了負數,計算機中,就沒有負數了。

同時,也就沒有減法運算了。

使用補碼的目的,就是:簡化硬體。

補碼(正數)怎麼就能代替負數呢?

用十進位制來說明,比較容易理解。你看:

25 + 99 = 一百) 24

你如果捨棄進製,+99 就能代替-1;加法,也就能代替減法。

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

這些正數,就是「負數的補數」。

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

計算機用二進位制,補數,就叫做補碼了。

對於 8 位 2 進製,補碼 = 負數 + 2^8 = 負數 + 256。

所以,-1 的補碼就是 255 = 1111 1111 (二進位制)。

-2 的補碼就是 1111 1110。

正數,不需要變換,必須直接參與運算。

所以,正數,它就沒有補碼。

求 7-2 = 5,用補碼計算如下:

[-2]補 =

---相加---

得: (1)

捨棄進製,結果,就是非常正確的。

補碼,就是補碼,與原碼反碼毫無關係。

補碼,本來,是很簡單的,也很容易理解的。

但是,從「原碼反碼取反加一。。。來學習補碼,就不容易理解了。

那麼,「原碼反碼。。。老師總是講這些,是想幹什麼呢?

這些老外腦子不好,所以才弄出這些騷操作。

3樓:景蔓蔓惲薄

在計算機中,負數以其正值的補碼形式表達。

什麼叫補碼呢?這得從原碼,反碼說起。

原碼:乙個整數,按照絕對值大小轉換成的二進位製數,稱為原碼。

比如00000000

00000101是5的。

原碼。反碼:將二進位製數按位取反,所得的新二進位製數稱為原二進位製數的反碼。

取反操作指:原為1,得0;原為0,得1。(1變0;

0變1)比如:將00000000

00000101每一位取反,得11111111

稱:11111111

是00000000

的反碼。反碼是相互的,所以也可稱:

和00000000

互為反碼。補碼:反碼加1稱為補碼。

也就是說,要得到乙個數的補碼,先得到反碼,然後將反碼加上1,所得數稱為補碼。

比如:00000000

的反碼是:那麼,補碼為:

所以,-5在計算機中表達為:

11111011。轉換為十六進位制:0xfffffffb。

再舉一例,我們來看整數-1在計算機中如何表示。

假設這也是乙個int型別,那麼:

1、先取1的原碼:00000000

2、得反碼:

3、得補碼:

可見,-1在計算機裡用二進位制表達就是全進製為:0xffffff。

按位取反:01111111

加1:10000000

沒有溢位,因為沒有別的數用10000000來表示。這都是定義好的,記住就是了。

在微控制器中,什麼是補碼?最好能給出定義和例子,謝謝

4樓:沙里波特

補碼,是正負數存入計算機時的一種形式。

利用補碼,就可把減法,轉換成加法。

利用補碼,目的是減小硬體的複雜性。

補碼,並不難理解,只是被計算機磚家搞亂了概念。

其實,小學生,都知道下面這些常識:

鐘錶,倒撥 1 小時,可以用正撥 11 小時來代替。

倒撥 20 分,可以用正撥 40 分來代替。

-π/2 處的三角函式,與+3π/4 處的函式值相同。

在兩位十進位製數的條件下,減一,可以用+99 代替。

如: 24-1=23 24+99=(1) 23。

在上面所說的,就是「補數」的概念。為了求補數,還要知道乙個「週期」,也可稱為「模」。

在計算機中,沒有數字,都是二進位制**。

補數,也就改稱為「補碼」了。

八位二進位制是乙個位元組。範圍是:0000 0000~1111 1111。

寫成十進位制,就是 0~255,週期,就是 256。

-1,其補碼就是 256-1=255=1111 1111。

-2,其補碼就是 256-2=254=1111 1110。

-3,其補碼就是 256-3=253=1111 1101。

-128,其補碼就是 256-128=128=1000 0000。

補碼的定義式:正數的補碼 = 該數字本身。負數的補碼 = 模+這個負數。

補碼的應用:6-2=4,用補碼計算如下:

進製的 1,捨棄即可。

5樓:匿名使用者

補碼就是表示負數的一種形式。

用補碼表示負數,就是所有位數字都取反再加1比如用8位表示-1,1就是1,那-1就是1取反再加1,就是11111111

這樣表示負數有兩個好處,第一,只有乙個0。如果用第一位表示符號位,那麼就會有+0和-0兩種0.

第二,這樣可以把減法做成取補,然後再做加法。

6樓:匿名使用者

分兩種情況:1.正數的補碼是本生(原碼),如十六進位製數:01h(1)寫成二進位製數即:00000001b,則補碼就是00000001b(01h);

2.負數的補碼是原碼(除了符號位)的反碼加1,如十六進位製數:81h(-1)

寫成二進位製數即:10000001b,取反:11111110,加1:11111111(反碼);

7樓:匿名使用者

上面的理論相當正確 可是在微控制器上 還有一種取補(就像三角型的補角~~)

如對100來說20取補為80~~

微控制器16進製制的 (定時計數器用的多)(16位來說) 0xffff取補為。

0x10000-0xffff=0x0001公式 x(取補)=0x10000-x;(16位)

二進位制補碼啥意思? 多舉幾個例項

c語言中補碼和反碼是什麼意思,求例子,謝謝

8樓:網友

數在計算機中是以二進位制形式表示的。

數分為有符號數和無符號數。

原碼、反碼、補碼都是有符號定點數的表示方法。

乙個有符號定點數的最高位為符號位,0是正,1是負。

以下都以8位整數為例,原碼就是這個數本身的二進位制形式。

例如1000001 就是-1

0000001 就是+1

正數的反碼和補碼都是和原碼相同。

負數的反碼是將其原碼除符號位之外的各位求反[-3]反=[10000011]反=11111100負數的補碼是將其原碼除符號位之外的各位求反之後在末位再加1。

[-3]補=[10000011]補=11111101乙個數和它的補碼是可逆的。

為什麼要設立補碼呢?

第一是為了能讓計算機執行減法:

[a-b]補=a補+(-b)補。

第二個原因是為了統一正0和負0

正零:00000000

負零:10000000

這兩個數其實都是0,但他們的原碼卻有不同的表示。

但是他們的補碼是一樣的,都是00000000特別注意,如果+1之後有進製的,要一直往前進製,包括符號位!(這和反碼是不同的!)

[10000000]補。

=[10000000]反+1

=00000000(最高位溢位了,符號位變成了0)有人會問。

10000000這個補碼表示的哪個數的補碼呢?

其實這是乙個規定,這個數表示的是-128

所以n位補碼能表示的範圍是。

-2^(n-1)到2^(n-1)-1

比n位原碼能表示的數多乙個。

請問補碼怎麼怎麼運算?可以多舉幾個例子,還有「各位取反」是什麼意思?

9樓:天雲小店

正數的補碼與原始碼相同,反碼也與原始碼相同。

負數的補碼就是對原始碼各位取反變成反碼,再對反碼加1變成補碼十進位制 二進位制 反碼 補碼。

所以7-3=4剛好對應補碼的相加。

10100 --最高位溢位捨去,所以結果為0100對應十進位制的4

舉乙個計算機補碼計算的例子,以及怎麼計算

10樓:匿名使用者

運用:在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理。

計算1、正數。

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

例如:+9的補碼是00001001。(備註:

這個+9的補碼是用8位2進製來表示的,補碼表示方式很多,還有16位二進位制補碼表示形式,以及32位二進位制補碼表示形式,64位進製補碼表示形式等。每一種補碼表示形式都只能表示有限的數字。)

2、負數。求負整數的補碼,將其原碼除符號位外的所有位取反(0變1,1變0,符號位為1不變)後加1。

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

例如:求-5的補碼。-5對應正數5(00000101)→所有位取反(11111010)→加1(11111011)。所以-5的補碼是11111011。

3、0的補碼。

[+0]補=[+0]反=[+0]原=00000000

[ -0]補=11111111+1=00000000

計算機中的補碼是什麼意思,能給最好給幾個例子

補碼 two s complement 1 在計算機系統中,數值一律用補碼來表示 儲存 主要原因 使用補碼,可以將符號位和其它位統一處理 同時,減法也可按加法來處理。另外,兩個用補 碼表示的數相加時,如果最高位 符號位 有進製,則進製被捨棄。2 補碼與原碼的轉換過程幾乎是相同的。正數的補碼。與原碼相...

計算機中CE是什麼意思

ce 是指微軟的掌上電腦作業系統。ce customer edge 裝置 是使用者網路邊緣裝置,有介面直接與服務提供商相連,可以是路由器,也可以是交換機等。ce是感知不到vpn的存在的。是指微軟的掌上電腦作業系統 網路中的ce ce裝置 ce更多的是出現在vpn中的,與之對應的是pe。ce cust...

計算機中DRAM什麼意思,dram在計算機課上什麼意思呢

動態隨機訪問儲存器最為常見的系統記憶體。dram dynamic random access memory 即動態隨機訪問儲存器,最為常見的系統記憶體。dram 只能將資料保持很短的時間。為了保持資料,dram使用電容儲存,所以必須隔一段時間重新整理一次,如果儲存單元沒有被重新整理,儲存的資訊就會丟...