計算機基礎二進位補碼與移位運算

2025-06-18 07:10:21 字數 5402 閱讀 1144

1樓:做而論道

在計算野租消機系統中,數字,一律採用補碼錶示和儲存。

八位補碼,與其代表數字的對應關係,如下表所示。

由圖可見,數字與補碼的轉換,十分簡單。

-頌知-二進位補碼移位:移動一位,就是乘(除)以二。

向左移位,型碼很簡單了。向右移位,就要保持最高位不變。

2樓:黑科技

最近學習c,感覺c確實比較接近底層,要多瞭解計算機基礎,這一門語言就一定不能錯過了,因為許多知識都從這裡延伸出來。

言歸正題,先說說機器數:

原碼/補碼/反碼之間的關係:

機器數:原碼與補碼。

對於正數而言,二進位數的原碼/反碼/補碼都是一樣的。

對於負數而言,其二進位數與原碼一樣,其反碼則是其二進位數逐位反轉(0轉為1,1轉為0)而成,其補碼則是反碼的基礎上加1

其中對於原碼/反碼和補碼而言模悄,其最高位中0代表正數,1代表負數。

使用補碼可使減法變加法(符號位參與運算)

說到位移運算,就必須有與、或、非、異或這幾個運算子,它們二進位運算中的運算子,以下時他們的規則:

就像規則一樣,只有全部時1的時候得到的結果才為1。示例:

當運算結果其中乙個為1時,結果就為1,當然,都是1的時候也是1示例:

若且唯若有乙個1的時候才為1,也就橋液是說只有1和0組合才為1示例:

將二進位逐位取反。示例:

瞭解這四個運算子很簡單,但是對於初學者而言,更重要的是其用法,如果不知道怎麼用,那麼這道這些運算子也沒什麼用。

與運算子通常用於掩碼,指的是一些設定為開(1)或管(0)的為組合。

在實際運用中,最常見的掩碼用法莫過於以下這種:

其中0xff的二進位形式為11111111,當乙個數與上0xff,那麼此數的最後8位將儲存不變(&運算規則決定),而其他數均會為0,也就是敏碼物說最終的值被改為1個8為位元組,這種用法是取位的某一段。

第二種用法是讓某些位或某一位為0,因為&運算的規則,只要給某些位上&上為0的數,那麼這一位就會為0,如上面的示例(10010011)&(00111101)=(00010001)

使乙個位或幾個位為1,如x|0x01,這樣不管x是什麼數,其結果的最後一位都會為1。

把兩個數拼起來,如0xff00 | 0x00ff

想得到全部位為1的數,如~0

移位運算分《左移和》 右移。

補碼二進位計算機為什麼要用補碼儲存整型,關於

3樓:做而論道

補碼的功能,類似於:

時針倒撥 3 小時,與正撥 9 小時,效果相同。

利用這種思路,計算機中的負數,也可以改為正數(即補碼)。

同時,減法運算,也就可以用加法代替了。

那麼,藉助於補碼,在計算機中,就沒有負數了,也沒有了減法運算。

由此就可以簡化演算法,從而簡化計算機的硬體。

十進位比較容易理解:

25 + 99 = 一百) 24。

只要忽略進位,+99 就能代替-1。

+99 就稱為-1 的補數。

在這裡用了 2 位 10 進位。

求補數的演算法:補數 = 負數 + 10^2。

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

計算機用二進位,補數,就改名為:補碼。

乙個位元組,是 8 位 2 進位。

計數範圍是:0000 0000 ~ 1111 1111(十進位 255)。

計數週期是:2^8 = 256。

求補碼的演算法:負數的補碼 = 負數 + 2^n。

那麼:-1 的補碼=-1 + 256 = 255 = 1111 1111。

2 的補碼=-2 + 256 = 254 = 1111 1110。

例如用補碼計算如下:

[-2] 補 =

---相加---

得: (1)

捨棄進位,結果就完全正確。

藉助於補碼,負數就沒有了,從而就把「減法轉換為加法運算」。

補碼的**,與原碼反碼毫無關係。

「原碼反碼取反加。

一、符號位也能參加運算」..

這些,都沒有什麼理論依據。

從「原碼取反加一」開始學習補碼,就弄不清楚「為什麼用補碼」。

4樓:可軒

為了便於硬體邏輯電路的實現(高電平表示1,低電平表示0)計算機中的數值用機器數來表示及運算,而這個數本身稱作真值。

機器數包括:原碼、反碼、補碼、……

機器數用補碼錶示的好處:

原碼簡單,適用於乘除運算,但用原碼錶示的數進行加減法運算比較複雜。

補碼,減法運算可以用加法來實現,例如 [x-y]補 = x]補 +[y]補,補碼的符號位也可以參與運算,便於運算結果的正負及是否溢位判斷。

二進位運算為什麼要用補碼進行運算?

5樓:深空遊戲

計算機尺晌姿采用補碼數進行運算的原因:在計算機系統中,數值一律用補碼來表示和儲存。原因在於,陵絕使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。

在計算機系統中,資料,一律謹野採用補碼來表示和儲存。原因在於,使用補碼,可以將加法和減法統一處理。補碼,就是補碼,與原碼反碼毫無關係。

從原碼反碼開始學習,就不能理解「為何要用補碼?」。

就是為了:簡化硬體,省錢。因為,負數,是可以用乙個正數(補碼)代替的。

如:24-1=2324+99=(一百)23忽略進位,用+99就可以代替-1。+99,就是-1的補數。

計算機用二進位,就稱為:補碼。

二進位補碼計算

6樓:懂啦

一分鐘瞭解計算機與二進位。

7樓:網友

-29的8位二進位補碼是11100011,-25的8位二進位補碼是11100111,-29-25=-29+(-25)=11100011+11100111=11001010,這是-54的8位二進位補碼。

計算機二進位補碼

8樓:藺付友祭庚

8位的二進位補碼,可以表示-128~+127;

16位的二進位補碼,可以表示-32768~+32767。

實用的時候,一般就是從這兩種之中選擇一種。

8位的夠用了,就不要選16位的。

二進位補碼計算

9樓:懂啦

一分鐘瞭解計算機與二進位。

10樓:網友

-85:

求補:1010 1011

相加:1010 1011

結果為負數,16進製為f7,注意此結果為補碼,要得到十進位,要轉換過來。

進了一位,由於只有8位,故忽略,無溢位。

11樓:網友

-85=10101011

85+76=11110111 取反+1 =00001001=9 帶上符號位 為 -9 16進位 f7h

85-76=00001001 =9 16進位 09h

計算機為什麼選用二進位補碼

12樓:匿名使用者

1.總的概念數在計算機中是以二進位形式表示的;

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

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

無符號數全部按正數處理;

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

2.反碼,補碼定義。

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

負數:原碼。

反碼=其原碼除符號位之外的各位求反。

補碼=反碼+1 (如果+1之後有進位的,要一直往前進位,包括符號位)3.運算示例。

正零:00000000

負零:10000000

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

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

10000000]補。

10000000]反+1

00000000(最高位溢位了,符號位變成了0)有人會問。10000000這個補碼錶示的哪個數的補碼呢?

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

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

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

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

又例:原碼:01011

反碼:01011 //正數時,反碼=原碼。

補碼:01011 //正數時,補碼=原碼。

原碼:11011

反碼:10100 //負數時,反碼為原碼取反。

補碼:10101 //負數時,補碼為原碼取反+1原碼:

反碼: //正數時,反碼=原碼。

補碼: //正數時,補碼=原碼。

原碼:反碼: //負數時,反碼為原碼取反。

補碼: //負數時,補碼為原碼取反+1

4.幾個特殊定義:

n位補碼能表示的範圍:有符號數是 -2^(n-1)到2^(n-1)-1 無符號數是 0-2^n-1

128的補碼是10000000, -128+1=-127 ,(127)補=10000001=10000000+00000001 符合運算規則。

0的補碼00000000

13樓:沙裡波特

廠家,不願意生產十進位的計算機。

樓主自己投資建個廠,就可以不用二進位補碼了。

14樓:做而論道

計算機,只能使用二進位。

使用補碼,就能夠用加法,代替減法運算。

這樣一來,計算機只需配置乙個加法器,就夠用了。

計算機二進位制補碼求和1101,計算機二進位制補碼求和1101,

正數的原反補都一樣,0011 原 1101 補,兩者相加為0 二進位制補碼怎麼計算的 1 正數的補碼錶示 正數的補碼 原碼 負數的補碼 or 以十進位制整數 97和 97為例 97原碼 0110 0001b 97補碼 0110 0001b 97原碼 1110 0001b 97補碼 1001 1111...

2進位制問題,計算機二進位制問題?

十進位制是逢十進一,二進位制是逢二進一,計算機只有0和1兩種狀態,所以只能用二進位制,十進位制,每一位有十種狀態,1,2,3,4,5,6,7,8,9,0。當有第十一種狀態就進一位,用二位數表示,如1 9 10,而二進位制每一位只有二種狀態,當有第三種狀態就進一位,用二位數表示,如000表示0,001...

二進位制的與計算怎麼算,二進位制數的與運算是相加,那麼或運算怎麼算?比如110000010和10100110進行或運算等於?

二進位制的計算資料是用0和1兩個數碼來表示的數。基數為2,進位規則是 逢二進一 借位規則是 借一當二 計算機中的二進位制是一個非常微小的開關,用 開 來表示1,關 來表示0。二進位制的計算分為五種 1 加法有四種情況 0 0 0,0 1 1,1 0 1,1 1 10,0進位為1。2 乘法有四種情況 ...