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使用電容儲存,所以必須隔一段時間重新整理一次,如果儲存單元沒有被重新整理,儲存的資訊就會丟...