二進位原 反 補碼底層知識

2025-04-20 12:30:10 字數 6537 閱讀 8684

1樓:做而論道

底層知識!計算機,是電子裝置。裡邊,只有電壓電流的變化。

計算機中,根本就沒有數字。

計算機中,只有高電平、低電平,用來代表各種資訊。

把高、低電平,簡稱為。

,這只是**而已,也寫成 h(igh)、l(ow)。,雖然有二進位數的形態,但是,並不是數值,只能說是「數碼訊號」。

它們可以代表:數值、字元、聲音、影象、..以及控制訊號。

用它代表數值時,有兩種基本的:

自然數:有、.又稱為:無符號數。

整數:包括正數、零、負數。又稱為:帶符號數。

兩者的區別,就在於首位的正負,是怎麼確定的。

八位二進位碼,稱為乙個位元組。

那麼,這組**:,代表了什麼數呢?

首位如果是負數,它就是

其它位,都是正數。

各位求和,這就是【帶符號數】=-125。

如果首位是正數,這就是

各位求和,這就是【無符號數】=131。

首位如果是零,肯定就沒有負數的事了。

是不是帶符號數,也就無所謂了。

以上,就是「**與數值」的「枯含公升底層知識」。

你也可以理沒老解為「補碼與帶符號數」的關係。

原碼和反碼,在計算機中,都不老敗存在,所以,就不用討論了。

十進位的原碼、補碼

2樓:惠企百科

十進位-67的原碼是01000011、反碼是10111100和補碼是10111101。

轉換規則:1、負整數的原碼為二進位前面加符號位;

67=1000011(二進位)=11000011(原碼)2、負整數的反碼=原碼各位取反(除了符號位外);

11000011(原碼)=10111100(反碼)3、負整數的補碼=負整數的反碼+00000001;

10111100(反碼)=10111101(補碼)<>

3樓:做而論道

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

原碼和反碼,都是不存在的。

補碼,是乙個「代替負數」的正數。

使用了補碼,計算機中就沒有負數了,同時,也就沒有減法運算了。

因此,使用補碼,就能簡化運算,從而就簡化了硬體。

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

用十進位來說明,其原理就十分簡單。

用 2 位 10 進位數,可有下列的算式:

25 + 99 = 一百) 24

如果你只取 2 位數,捨棄超出的進位,+99 就能代替-1 !

加法,也就代替了減法。

同樣,+98 也能代替-2。

這些代替負數的正數,就稱為:「負數的補數」。

計算公式:【 補數 = 負數 + 10^2 】。

其中:10^2 = 100,是 2 位 10 進位數的計數週期。

計算機用二進位,補數,就稱為「補碼」了。

8 位 2 進位數,計數週期就是:2^8 = 256。

1 的補碼 =-1 + 256 = 255 = 1111 1111 (二進位)。

2 的補碼就是:254 = 1111 1110 (二進位)。

老外數學不好,弄不懂原理,也不願意計算,才編造了「原碼反碼取反加一 ..

其實,原碼反碼,在計算機中,並不使用,也根本就不存在。

計算機老師,卻很愛「津津樂道」這些沒用的「知識」!

看來,用小學知識來算乙個數,對他們,是很難的。

十進位的原碼、補碼

4樓:帳號已登出

十進位-67的原碼是01000011、反碼是10111100和補碼是10111101。

轉換規則:1、負整數的原碼為二進位前面加符號位;

67=1000011(二進位)=11000011(原碼)2、負整數的反碼=原碼各位取反(除了符號位外);

11000011(原碼)=10111100(反碼)3、負整數的補碼=負整數的反碼+00000001;

10111100(反碼)=10111101(補碼)

5樓:小陽同學

67轉成2進位就是1000011,如果是8位二進位,最高位是符號位,負數最高位是1,原碼就是11000011,負數反碼是原碼除了最高位外按位取反,反碼就是:10111100,補碼是反碼加1,就是10111101。

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

原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。

6樓:網友

89,正數,二進位原始碼,反碼,補碼是相同的。

89,負數,原始碼,反碼,補碼。

二進位的原碼、補碼、反碼詳解

7樓:象拔蚌燒賣

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

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

比如鐘錶,時針轉一圈,週期是 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 的補碼=0000 0111

3的補碼=1111 1101

相加---得: (1) 0000 0100 = 4 的補碼。

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

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

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

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

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

8樓:黑科技

在計算機中所有的資料都是以二進位儲存的。

中機器數中,使用最高位來表示數字的**:1為負,0為正;

乙個字長為8為。

單看1000 0011這個數,不知道是機器數還是二進位數,所以引出了機器數的真值概念。

機器數的真值就是機器數所對應的真值的數值;

如:1000 0011 = 3;

符號位:首先確定乙個數的正負,如果是正數,首位使用0表示,如果是負數,首位用1表示。

有效位:真值的絕對值轉化為二進位形式。

符號為和有效位拼接到一起。

正數:正數的反碼和原碼相同。 +3 :0000 0011【原碼】 0000 0011【反碼】

負數:符號位不變,其餘各位直接取反,二進位只有兩種狀態:1->0;0->1; -3:

1000 0011【原碼】 1111 1100【反碼】

正數:正數的原碼反碼補碼全部相同 +3: 0000 0011【原碼】 0000 0011【反碼】 0000 0011【補碼】

負數:求得原碼,再求反碼,中最後一位+1,這就是負數的補碼 -3:1000 0011【原碼】 1111 1100【反碼】 1111 1101【補碼】

反碼:中沒有計算機的時候只設計了加法器,沒有減法器,使用加法計算來表示減法,補碼:反碼解決了沒有減法的問題,但是會出現絕對值相同的正負兩個數相加會出現-0情況,那麼在計算機中不能出現0的表現不唯一情況,所以採用補碼進行修正。

注】1、採用補碼計算; 2、正數補碼、反碼、原碼相同; 3、負數首位符號位為1;

例:正數相加

例:減法(可以看做負數相加)

56為正數,補碼和原始碼一樣,求出-33的補碼,然後將兩個數的補碼相加得出結果。

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

負數:補碼的補碼(首位不變,其餘取反,再加1)

正數:不變(原碼 = 反碼= 補碼)

負數:首位不變,其餘取反。

9樓:做而論道

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

詳解它們,都沒有任何意義。

在計算機系統中,只用補碼,表示數值。

你只需掌握「數值與補碼」的換算,即可。

補碼,其實是乙個「代替負數」的正數。

利用補碼代替了負數之後,計算機中,就沒有負數了。

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

因此,計算機,只需具有乙個加法器,就可以走遍天下了。

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

其中的道理,十分簡單。就是三歲小孩,都會懂的。

你三歲時,只會數一百個數(0~99)。

到了 100,就重新開始數,10^2,就是你的計數週期。

這時,你就可以用加法,來做減法:

25 + 99 = 一百) 24

進位,你一定會忽略! 那麼在此時:

+99 就可以當做-1 使用。

98,也就能當-2 了。

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

怎麼求:補數 = 負數 + 週期(10^n),n 是位數。

計算機用二進位,此時,就叫做「補碼」了。

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

那麼,-1 的補碼就是:-1 + 256

255 = 1111 1111(二進位)。

2 的補碼是:254 = 1111 1110。

補碼是「代替負數」的正數。

而正數,不需要代替,必須直接參加運算。

也就是說,正數,不存在補碼。

這就是補碼的詳解。

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

取反加一符號位不變。。。都沒有任何依據,就不要相信了。

用二進位制補碼計算下列各式 ,用二進位制補碼計算下列各式

則 12的原碼為101100,反碼為110011,補碼為110100。5的原碼為100101,反碼為111010,補碼為111011。正數的補碼錶示 正數的補碼 原碼 負數的補碼 or 以十進位制整數 97和 97為例 97原碼 0110 0001b 97補碼 0110 0001b 97原碼 111...

二進位制數11010100的原碼,反碼,補碼和移碼是什麼

正數的原 反 補碼都一樣 0的原碼跟反碼都有兩個,因為這裡0被分為 0和 0。二進位制數11010100 是負數 2 6 2 4 2 2 x 原 11010100 符號位不變,原碼的其他位按位取反 x 反 10101011 補碼在反碼的基礎上按照正常的加法運算加1 x 補 10101100 移碼不論...

32768的補碼是多少, 32768的二進位制補碼是多少?

取值範圍是16位嘛 多的進位就應該去掉 你應該考慮的是16位的有符號整數 int 吧 在計算機中是用補碼儲存資料 為什麼不用原碼存 就是因為原碼錶示不了最小值 32768 如果是原碼錶示的話,編碼中 0是用16個0表示,0是用1後跟15個0表示 但是由於 0等於 0所以相當於多花了一個編碼來編碼0 ...