怎麼根據補碼算對應的十進位數?特別是負數的

2025-03-21 10:45:27 字數 6088 閱讀 8990

1樓:弓易巧鎮笛

正數的補碼是他本身了,負數的纖喊話:如:11111101先減一了得11111100,然後取反得00000011,最後算對應的十進數為3了,求毀碼野負數補碼的基本步驟是:

先減一,再取反,最後再轉換就ok了!希望慢慢體會模橘!

2樓:做而論道

知道補碼,求真值,是非常簡單的。你不用求「反碼原碼」。你也不用想著「符號位不變」。

取反加一」或「減一取反」,都是不需要的。

你就直接進行【數 制 轉 換】即可。

比如猜隱:八位的補碼,是:首位 1,既代表負號,也代表數值-128。

加上其餘位,就是真值:

又如,補碼,是:真值,就是各位檔兆指之和:

簡不簡單? 意不意外?由補碼,求真值,並不用繞來繞去的。

補碼、真值,都和原碼反碼,毫無關係。

那麼,原碼反碼,都是幹嘛用啊?

它行配們,僅僅是計算機專家討飯用的碗。

3樓:銳子軒欒原

先將補碼減一,然後取其反碼然後將轉換後的二進枯吵制數轉換成十進位數就可以了信孝啊,如果是負數,最高位不要變沒坦侍啊!

在二進位補碼計數中,乙個正數與乙個負數相加會溢位嗎

4樓:孝思焉語芹

所謂溢位,就是運算結果超出局逗橋了可表示的最小負數指檔和最大正數之間的範圍。

運算前的負數當然不會小於最小負數,正數也不會大於最大正數。負數和正數相加,如果結果為正,那必定小於相加前那個正桐猛數,同理,若結果為負,必定大於相加前那個負數,不論哪種情況,結果都不可能超出可表示的最小負數和最大正數之間的範圍。

5樓:做而論道

溢位,就是運算結果超出了補碼所能表示的範圍。

八位補碼的表示範圍是:-128~+127。

只有「正數+正數」或「正手孝數-負」,才有可能超出+127。

只有「負數慎指+負數」或「負-正」,才有可能超出-128。

而當「正數和負數相加」畢首,只會越來越趨於 0。

離最大值最小值,都越來越遠,這就絕對不會產生溢位。

兩個負數的二進位補碼是怎麼相加的

6樓:鋒視小戲卦呀

x =-,y =-,要求通過補碼相加,求 x + y。

都化為二進位,保留三位小數:x =- = 。

y =- =-。

分別轉換為八位補碼:[x]補 = 1111 0011。

y]補 = 1101 0110。

相加:

[x + y]補

捨棄進位,只保留八位,「和」的補碼,就是

再轉為原碼:[x + y]原 = 1011 0111。

求出對應的真值(記住:其中有三位小數):

x + y = = 。完。

二進位補碼為負數,求這個負數的絕對值怎麼求

7樓:沙裡波特

假設是八位盯慶者凱薯補碼。

把 x 換算成十進位差鬧。

如果:x = 0~127, x 本身就是絕對值。

x = 128~255,其絕對值是 256-x。

8樓:解騫

對該補碼進行求補運算。

負二進位的補碼是什麼?

9樓:沙裡波特

正數的補碼,是其本身。負數的補碼,就用它的正數,減一取反,即可得到補碼。

如,+9 的二進位是:0000 1001。

下面求-9 的補碼:

先減一:0000 1001 - 1 = 0000 1000;

再取反:1111 0111。所以有:-9 補碼 = 1111 0111。

簡不簡單?意不意外?

原碼反碼符號位,都是毫無用處的,不必關心。

10樓:做而論道

負數的補碼,是乙個正數。

多選十進位負數-2的補碼是多少?

11樓:網友

-2的補碼是11111110

在計算機中,符號數有三種表示方法,有原碼、反碼和補碼。

原碼:

簡單主觀,是給人看的,容易理解,其中最高位為符號位,正數用0表示,負數用1表示。例如,十進位2的二進位為10,最高位為0(0000 0010),那麼十進位-2的原碼就為1000 0010。

反碼:

一般用於原碼轉換成補碼,或補碼轉換成原碼的中間碼。

正數的反碼是其本身,負數的反碼是在其原碼的基礎上,符號位不變,其餘各個位取反。

例如十進位-2的原碼是1000 0010,那麼其反碼是1111 1101。

補碼:

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

例如十進位-2的原碼是1000 0010,那麼其補碼是1111 1110。

總結(-2的三碼):

原碼:10000010

反碼:11111101

補碼:11111110

12樓:沙裡波特

假設字長是八位,說明如下。

十進位數 0 的補碼是:0000 0000。

將其減一,可得:1111 1111,這就是十進位數-1 的補碼。

再次減一,可得:1111 1110,這就是十進位數-2 的補碼。

別忘了採納。

n位二進位數原碼,反碼,補碼所能表示的十進位數的範圍 怎麼算

13樓:生活仁昌

n位二進位數原碼,反碼,所能表示的十進位數的範圍都是是-2^(n-1)-1~+2^(n-1)位二進位數補碼能表示的十進位數的範圍是-2^(n-1)~+2^(n-1)-1。

二進位數轉換成十進位數使用"按權相加"法,把二進位數首先寫成加權係數式,然後按十進位加法規則求和。

原碼錶示法規定:用符號位和數值表示帶符號數,正數的符號位用「0」表示,負數的符號位用「1」表示,數值部分用二進位形式表示。所以n位二進位數原碼能表示的十進位數的範圍是-2^(n-1)-1~+2^(n-1)-1。

反碼錶示法規定:正數的反碼與原碼相同,負數的反碼為對該數的原碼除符號位外各位取反。所以n位二進位數反碼能表示的十進位數的範圍是-2^(n-1)-1~+2^(n-1)-1。

補碼錶示法規定:正數的補碼與原碼相同,負數的補碼為對該數的原碼除符號位外各位取反,然後在最後一位加1。所以n位二進位數補碼能表示的十進位數的範圍是-2^(n-1)~+2^(n-1)-1。

14樓:網友

n位二進位原碼和反碼所能表示的十進位數的範圍是-2^(n-1)-1~+2^(n-1)-1

n位二進位補碼所能表示的十進位數的範圍是-2^(n-1)~+2^(n-1)-1

15樓:做而論道

n 位二進位數原碼,反碼,補碼所能表示的十進位數的範圍 怎麼算。

在 n 位的原碼中,符號位佔用了乙個位,只用 n-1 位表示絕對值。

因此,可以表示負數的範圍是:-2^(n-1)-1~-0;

同理,可以表示正數的範圍是:+0~+2^(n-1)-1。

綜合,n 位原碼所能表示的是:-2^(n-1)-1~-0,+0~+2^(n-1)-1。

如 n = 8,範圍就是:-2^7-1 ~-0,+0 ~+2^7-1。

即: -127~-0,+0 ~+127。

n 位的反碼,與原碼是一一對應的。

所以,n 位反碼的範圍,也是:-2^(n-1)-1~-0,+0~+2^(n-1)-1。

原碼和反碼,都是不合理的編碼。

天下只有乙個零,原碼反碼,卻都編造了兩個**:-0、+0。

這種「逆天」的編碼,計算機是不能使用的。

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

淘汰了原碼和反碼之後,又發明了補碼。

補碼中,只有乙個零的編碼。

空出來的乙個碼位,用-2^(n-1) 填充。

所以,n 位補碼的範圍,就是:-2^(n-1)~-1,0~+2^(n-1)-1。

如 n = 8,範圍就是:-2^7 ~-1,0 ~+2^7-1。

即:-128 ~ 1,0 ~+127。

實際上,原碼和反碼,在計算機中,都是沒有任何用處的。

你只能寫在紙面上,黑板上。

都表示多大範圍? 你可以隨便怎麼說。

16樓:徐州什麼

n位帶符號二進位原碼,反碼錶示範圍為 -(2^n-1)-1)~(2^n-1)-1,補碼範圍為 -(2^n-1)~(2^n-1)-1

負數(二進位)的補碼公式是?

17樓:我和你天下第一好

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

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

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

數0的補碼錶示是唯一的。

0]補=[+0]反=[+0]原=00000000;[ 0]補=11111111+1=00000000。

18樓:沙裡波特

用正數的補碼,減。

一、取反,就得到負數的補碼。例如求-5 的補碼,步驟如下:

5 的補碼是:0000 0101。

先減一:0000 0101-1=0000 0100。

再取反:1111 1011。這就是-5 的補碼。

19樓:做而論道

負數 x 的(二進位)補碼公式是?

負數 x 的(二進位)補碼 = 2^n - x |。

應用示例:求 -128 的八位補碼,就是: 2^8 -|128 |。

即: 256-128 = 128 = 1000 0000(二進位)。

20樓:網友

負數(二進位)原碼,除符號位外逐位取反,稱為反碼,反碼加 1 就是補碼。

如: -5 = 1000 0101)原。

反碼: 1111 1010

補碼: 1111 1011

十進位制演算法,十進位制是怎麼算的

using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using system.window...

十進位制怎麼算,二進位制怎麼算,十進位制化成二進位制怎麼算

10進位制就是逢10進1的進位制數值統計方法,相對的還有2進位制8進位制16進位制。10進位制轉換成其他的都是除以要轉換成的那個數,也就是說轉換成二進位制的就除以2,轉換成八進位制的就除以8,轉換成十六進位制的就除以16,然後倒取餘數。10 2 把20轉換成二進位制,20 2 10.餘數為0,10 ...

輸入十進位制數,轉換成對應的八進位制數和十六進位制數並輸出

這個 我今天也碰到了,阿西吧 n n 8 n的值就變了 而不是輸入的值 先改了 看看對不對 程式設計實現 輸入一個十進位制數,轉換成對應的二進位制數 八進位制數和十六進位制數並輸出。1 include using namespace std int main cout cout 2 main pri...