計算機補碼,計算機中補碼的意義和演算法

時間 2023-02-14 23:15:11

1樓:巨集蒼蘭涵亮

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

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

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

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

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

0變1)比如:將00000000

00000101每一位取反,得11111111

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

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

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

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

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

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

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

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

1、先取1的原碼:00000000

2、得反碼:

3、得補碼:

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

按位取反:01111111加1

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

2樓:沙里波特

正負數,在計算機中存放的格式,就是補碼。

計算機中,並沒有原碼和反碼,也就不必關心它們了。

下面,針對補碼,給出解釋。

比如,有乙個小孩,很小的。

他只認識 100 個數(0~99),也不會做減法。

那麼,就可以告訴他:「減一」,就用「加 99」算吧。

忽略進製的 100,結果不是一樣的嗎?

那麼,就是說:

99,就是-1 的補數。

98,就是-2 的補數。

利用「補數」,就可把「減法」轉為「加法」。

利用這個特點,計算機中,僅需乙個「加法器」,就夠用了。

在計算機中,是以二進位制存放正負數的,就稱為:補碼。

3樓:帛釗韶爾風

負數補碼求法:一種簡單的方式,符號位保持1不變,數值位從右邊數第乙個1及其右邊的0保持不變,左邊安位取反。

另外一種方法,數值位按位取反,末位加1,符號位保持不變。

的補碼。

4樓:做而論道

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

而正數,不需要用誰來代替,直接就可以運算。

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

先用十進位制來解釋,比較容易理解。

25+99=(一百) 24

如果捨棄進製,那麼,-1,就可以用正數99代替、減法也就可以用加法實現了。

這個正數(99),就是負數(-1)的補數。

在這裡,用的是【兩位】十進位制,計數週期就是 10^2 = 100。

-1 的補數 +99 是怎麼算出來的?

顯然就是:【-1+週期】。

八位二進位制,計數週期是 2^8 = 256。

那麼,-1 的補碼就是:

-1+256 = 255 = 1111 1111(二進位制)。

同理:-2 的補碼,就是:-2 + 256 = 1111 1110;

-3 的補碼,就是:-3 + 256 = 1111 1101;

-128 的補碼,就是:-128 + 256 = 1000 0000。

求補碼的通用公式:[x]補 = x + 計數週期。

補碼,就是補碼,和原碼反碼,都沒有任何關係。

利用補碼,可以節省乙個減法器,而原碼反碼都不具備這種功能。

所以,在計算機中,只是使用補碼,並不用原碼和反碼。

那麼,原碼和反碼有什麼用呢?

那就是計算機老師,捧在手裡的乙個碗。。。

計算機中補碼的意義和演算法

5樓:旗佑孝婉秀

負數時。

主要是正負數的時候。按正常的想法是只要符號位為1時即為負數,但是這種方法來計算得先計數它們的絕對值,然後才好進行加減等操作。

引入補碼。後,就解決了這一問題。

負數的補丁是。

取反後+1

6樓:沙里波特

意義:簡化演算法、簡化硬體。

演算法:就是二進位制唄。

什麼時候用補碼?

當你需要的時候,你就用補碼。

補碼的作用是什麼?

代替負數。為什麼在計算的時候還要+1或-1?

當你需要加。

一、減一時,你就這麼算吧。

計算機補碼是什麼

補碼在計算機系統中有什麼重要作用

7樓:沙里波特

計算機中補碼的作用,要從常識中「補數」來理解。

對於鐘錶,倒撥 3 小時,可以用正撥 9 小時來代替。

對於兩位十進位制數,共有 100 個數:0~99。

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

如:28-1 = 27

忽略 100,結果就相同了。

那麼,9 就是-3 的補數、99 就是-1 的補數。

補數,就是用數值較大的正數,代替負數。

利用補數,就可以用加法,代替減法運算。

補碼,就是二進位制形式的補數。

計算機中八位補碼,共有 256 種組合。

那麼,負數的補碼就是:256 + 這個負數。

那麼,數字-1 的補碼就是:1111 1111 = 255(十進位制)。

同理,數字-2 的補碼就是:1111 1110 = 254。

最終,數字-128 的補碼就是:1000 0000 = 128。

求補碼,並不需要原碼反碼。

計算機中,根本也沒有原碼反碼。

原碼反碼,是毫無用處的東西。

用補碼代替負數,就可用加法代替減法運算。

計算機中,只要具有加法器,就夠用了。

這就可以簡化計算機系統的硬體。

8樓:匿名使用者

通過原碼可以很便捷的實現將現實世界中的數值轉換為二進位制01序列儲存在計算機中,但原碼對於計算機中01序列數值的加減法運算難以高效支援。所以為了運算需要,必須要將數值以補碼形式儲存在計算機中,補碼有三個重要意義:

補碼可以很方便的將減法運算轉換為加法運算,硬體實現上,就只需要乙個加法器即可完成加減法運算,無需再設計生產減法器。

補碼加減法運算中,可以將符號位無差別的看成是數值,直接參與運算,最終得到的結果中最高位仍按符號位理解,並且計算結果無誤。

補碼消除了正負零的干擾,使得示數範圍朝負方向上擴充套件一位,如將原碼-127到+127的範圍,擴充套件為-128到+127.

9樓:匿名使用者

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

64位計算機, 所能表示的最大數是18446744073709551616,若再加1成為18446744073709551617,但因只有64位,最高位1自然丟失,又回了零,所以64位二進位制系統的模為2^64。在這樣的系統中減法問題也可以化成加法問題,只需把減數用相應的補數表示就可以了。把補數用到計算機對數的處理上,就是補碼。

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

求負整數的補碼,將其對應正數二進位制表示所有位取反(包括符號位,0變1,1變0)後加1。同乙個數字在不同的補碼表示形式中是不同的。比如-15的補碼,在8位二進位制中是11110001,然而在16位二進位制補碼表示中,就是1111111111110001。

以下都使用8位2進製來表示。

希望我能幫助你解疑釋惑。

機器中為什麼要用補碼?有什麼好處...

10樓:沙里波特

使用補碼代表負數,就可以把減法,轉化為加法運算。

那麼,在計算機中只要有乙個加法器,就可以做加、減法了。

使用補碼的意義,就是簡化了計算機的硬體。

原理如下:時鐘倒撥 3 小時,可以用正撥 9 小時代替。

怎麼計算,自己推導吧。

兩位十進位制數,共有 100 個數字:00~99。

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

忽略進製 100,只取後兩位,結果,不就是相同的嗎?

結論:只要利用乙個「較大的正數」代替負數,就能把減法變加法了。

這個較大的正數,就是負數的補數。

計算公式:-1 的補數=100-1 = 99。

-2 的補數=100-2 = 98。

計算機中,使用的是二進位制。

二進位制的補數,就改稱為:補碼。

八位二進位制數,共有 256 個數字:0000 0000~1111 1111。

那麼,-1 的補碼就是 1111 1111 = 255(十進位制)。

同理,-2 的補碼就是 1111 1110 = 254(十進位制)。

最後,-128 的補碼就是 1000 0000 = 128(十進位制)。

計算公式:負數的補碼=【256+這個負數】

零和正數,不需要求補數(補碼),直接計算即可。

11樓:左稚幻

數的原碼表示形式簡單,適用於乘除運算,但用原碼表示的數進行加減法運算比較複雜,引入補碼之後,減法運算可以用加法來實現,且數的符號位也可以當作數值一樣參與運算,因此在計算機中大都採用補碼來進行加減法運算。

12樓:網友

計算機就兩種狀態,通電,不通電。代表著1和0.負數沒法表示啊!因為只有0和1.所以用補碼。

計算機原碼反碼補碼怎麼算

13樓:象拔蚌燒賣

計算機原碼反碼補碼計算方法:

1、原碼。原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值。比如如果是8位二進位制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

第一位是符號位。 因為第一位是符號位, 所以8位二進位制數的取值範圍就是:[1111 1111 , 0111 1111]

即[-127 , 127]

原碼是人腦最容易理解和計算的表示方式。

2、反碼。反碼的表示方法是:正數的反碼是其本身。負數的反碼是在其原碼的基礎上, 符號位不變,其餘各個位取反。

[+1] =00000001]原 = 00000001]反。

[-1] =10000001]原 = 11111110]反。

可見如果乙個反碼表示的是負數,人腦無法直觀地看出來它的數值。通常要將其轉換成原碼再計算。

3、補碼。補碼的表示方法是:正數的補碼就是其本身。負數的補碼是在其原碼的基礎上,符號位不變,其餘各位取反,最後+1。(即在反碼的基礎上+1)。

[+1] =00000001]原 = 00000001]反 = 00000001]補。

[-1] =10000001]原 = 11111110]反 = 11111111]補。

對於負數,補碼表示方式也是人腦無法直**出其數值的。通常也需要轉換成原碼在計算其數值。

14樓:沙里波特

計算機中,並沒有原碼和反碼,只是使用補碼,代表正負數。

使用補碼的意義:可以把減法或負數,轉換為加法運算。從而簡化計算機的硬體。

比如鐘錶,時針轉一圈,週期是 12 小時。

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

9,就稱為-3 的補數。

計算方法:12-3 = 9。

對於分針,倒撥 x 分,就可以用正撥 60-x 代替。

如果,限定了兩位十進位制數 (0~99),週期就是 100。

那麼,減一,就可以用 +99 代替。

忽略進製,只取兩位數,這兩種演算法,結果就是相同的。

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

其它負數的補數,大家可以自己求!

求出了負數的補數,就可用加法,代替減法了。

計算機中使用二進位制,補數,就改稱為【補碼】。

常用的八位二進位制是:0000 0000~1111 1111。

它們代表了十進位制:0~255,週期就是 256。

那麼,-1,就可以用 255 = 1111 1111 代替。

所以:-1 的補碼,就是 1111 1111 = 255。

同理:-2 的補碼,就是 1111 1110 = 254。

繼續:-3 的補碼,就是 1111 1101 = 253。

最後:-128,補碼是 1000 0000 = 128。

計算公式:負數的補碼=256+這個負數。

正數,直接運算即可,不需要求補碼。

也可以說,正數本身就是補碼。

補碼的應用如: 7-3 = 4。

用補碼的計算過程如下:

7 的補碼=

-3的補碼=

相加

得: (1)= 4 的補碼。

捨棄進製,只保留八位,作為結果即可。

這就是:使用補碼,加法就代替了減法。

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

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

原碼和反碼,毫無用處。計算機中,根本就沒有它們。

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

數值在計算機中是以補碼的方式儲存的,在探求為何計算機要使用補碼之前,讓我們先了解原碼,反碼和補碼的概念。對於乙個數,計算機要使用一定的編碼方式進行儲存。原碼,反碼,補碼是計算機儲存乙個具體數字的編碼方式。乙個數在計算機中的二進位制表示形式,叫做這個數的機器數。機器數是帶符號的,在計算機用乙個數的最高...

什麼是計算機中的位元組,計算機中的「位」和「位元組」是什麼概念?

位元組是個儲存單位,8位字元稱乙個位元組,每個英文本母就占用乙個位元組,每個中文字佔兩個位元組,兩個英文本母和乙個中文漢字所佔的空間一樣大 byte是乙個位元組,乙個位元組由8位構成,也就是8bit 位元組是個儲存單位,通常說乙個英文本母為乙個位元組,乙個中文字母佔2個位元組,1mb 1024b,1...

C C 關於浮點數在計算機中的計算機制?

首先,要校正一下你問題中的錯誤 任何計算機裡面的算術邏輯運算都不是在記憶體裡面的進行的。必須先將資料讀入cpu中的暫存器,然後通過alu部件 運算部件 進行運算的。這點切記別搞錯了。以下講講浮點數的運算。其實在我的理解上,浮點數的運算和整數的運算其實區別不大。計算機浮點數的表示其實類似於我們數學中科...

計算機中的cadcamcaicat分別是什麼意思

cad computer aided design 計算機輔助設計 cam computer aided manufacturing 計算機輔助製造 cai computer aided instruction 計算機輔助教學 cat computer aided translation 計算機輔助...

關於計算機中二進位制的轉換和計算,計算機裡十進位制和二進位制之間怎麼轉換,計算的方法是什麼

計算機 十進位制和二進位制的轉換 第一題為 0.8125 2 1.625 取走1 還剩0.625繼續 0。625 2 1.25,取走1 還剩0.250。25 2 0.5,取0 0。5 2 1,取1,就ok了,看懂了沒?答案是0.1101 第二題就直說答案了 1010010,這個就你自己算了,一樓的給...