『壹』 原碼,反碼,補碼和移碼: 原碼:1001101,反碼,補碼,移碼各是多少
解:首位數字表示正負不做變(1為負數,0為正數)
反碼:1110010(正數反碼等於原數,題中為負數,則除首位數對應取反)
補碼:1110011(得出反碼數基礎上末位加一)
移碼:0110011(補碼符號位第一位數字取反)
反碼是數值存儲的一種,多應用於系統環境設置,如linux平台的目錄和文件的默認許可權的設置umask,就是使用反碼原理。
補碼(2's complement)是一種用二進製表示有號數的方法,也是一種將數字的正負號變號的方式。
移碼(又叫增碼)是符號位取反的補碼,一般用指數的移碼減去1來做浮點數的階碼,引入的目的是為了保證浮點數的機器零為全0。
補碼的設計目的是:
1.使符號位能與有效值部分一起參加運算,從而簡化運算規則.
2.使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計 所有這些轉換都是在計算機的最底層進行的,而在我們使用的匯編、C等其他高級語言中使用的都是原碼。
小數和分數的補碼:
1.十進制分數補碼可以先將分子和分母分別表示成二進制數,然後計算出二進制小數,再按下面第三步的方法將求出小數的補碼形式。
2.十進制小數的補碼也應該先將其轉換成二進制小數,再按下面第三步的方法將求出小數的補碼形式。
『貳』 二進制正,負數的原碼,反碼,補碼三者之間是什麼關系
以8位二進制為例,
正數的原碼、反碼、補碼相同,
負數的反碼為:除符號位外,原碼各位取反,反碼加1,得負數的反碼.
下面就對於原碼,反碼,補碼詳細分析一下:
原碼:將一個整數,轉換成二進制,就是其原碼。如單位元組的5的原碼為:0000
0101;-5的原碼為1000
0101。
反碼:正數的反碼就是其原碼;負數的反碼是將原碼中,除符號位以外,每一位取反。如單位元組的5的反碼為:0000
0101;-5的反碼為1111
1010。
補碼:正數的補碼就是其原碼;負數的反碼+1就是補碼。如單位元組的5的補碼為:0000
0101;-5的原碼為1111
1011。
在計算機中,正數是直接用原碼表示的,如單位元組5,在計算機中就表示為:0000
0101。
負數用補碼表示,如單位元組-5,在計算機中表示為1111
1011。
『叄』 計算機的原碼,反碼,補碼是怎麼回事可以舉例說明嗎
原碼、反碼和補碼是計算機中對數字二進制的三種表示方法。
1、原碼
原碼(true
form)是一種計算機中對數字的二進制定點表示方法。原碼表示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:+0和-0),其餘位表示數值的大小。
例如:用8位二進製表示一個數,+11的原碼為00001011,-11的原碼就是10001011。
2、反碼
反碼是數值存儲的一種,多應用於系統環境設置,如linux平台的目錄和文件的默認許可權的設置umask,就是使用反碼原理。反碼的表示方法是:正數的反碼與其原碼相同;負數的反碼是對正數逐位取反,符號位保持為1。
例如:
[+7]反=
0
0000111
B;
[-7]反=
1
1111000
B。
3、補碼
正數:正數的補碼和原碼相同。負數:負數的補碼則是符號位為「1」。並且,這個「1」既是符號位,也是數值位。數值部分按位取反後再在末位(最低位)加1。也就是「反碼+1」。
例如:
[+7]補=
0
0000111
B;
[-7]補=
1
1111001
B。
(3)正數的源碼為什麼等於補碼擴展閱讀
原碼、反碼、補碼的轉換方法如下:
(1)
已知原碼,求補碼。
例:已知某數X的原碼為10110100B,試求X的補碼和反碼。
首先通過原碼的首位確定該數字的正負,若為正數,反碼與原碼相同,補碼比原碼在末尾加1;若為負數,求其反碼時,符號位不變,數值部分按位求反;求其補碼時,再在其反碼的末位加1。
(2)已知補碼,求原碼。
按照求負數補碼的逆過程,數值部分應是最低位減1,然後取反。但是對二進制數來說,先減1後取反和先取反後加1得到的結果是一樣的,故仍可採用取反加1的方法。
參考資料來源:網路-反碼
參考資料來源:網路-補碼
參考資料來源:網路-原碼
『肆』 原碼在是正數的情況下等於補碼原碼:0101 補碼:0011。不等啊
正數,其補碼和原碼相同。
原碼:0101、補碼:0011,這兩個碼,並不是同一個正數。
『伍』 電腦中原碼和補碼是什麼關系
原碼,反碼,補碼是機器存儲一個具體數字的編碼方式。原碼跟補碼之間的關系是:正數的補碼與原碼相同,負數的補碼為 其原碼除符號位外所有位取反(得到反碼了),然後最低位加1。
在計算機系統中,數值一律用補碼來表示和存儲。使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。
原碼不能直接參加運算,可能會出錯。例如數學上,1+(-1)=0,而在二進制中00000001+
10000001=10000010,換算成十進制為-2。
(5)正數的源碼為什麼等於補碼擴展閱讀
原碼是有符號數的最簡單的編碼方式,便於輸入輸出,但作為代碼加減運算時較為復雜。一個字長為n的機器數能表示不同的數字的個數是固定的2^n個,n=8時2^n=256;
用來表示有符號數,數的范圍就是 -2^(n-1) ~ 2^(n-1)-1,n=8時,這個范圍就是 -128 ~ +127。但是在不需要考慮數的正負時,就不需要用一位來表示符號位,n位機器數全部用來表示是數值,這時表示數的范圍就是0~2^n-1,n=8時這個范圍就是0~255.沒有符號位的數,稱為無符號數。
『陸』 為什麼正整數的原碼,反碼,補碼相同..
這是一種規定。
補碼是為負數想出度來的辦法,目的是減法可以用加補碼的方法實現,補碼可用反碼加1得來,於是又有了負數的知反碼。
計算機里有硬體「加法器」,有了補碼,減法道也可以用加法器做了。
計算機里運算速度,內硬體遠快於軟體,這就是反碼,補碼和原碼花樣的原因。
(6)正數的源碼為什麼等於補碼擴展閱讀:
原碼、反碼和補碼是計算機中對數字二進制的三種表示方法。
1、原碼
原碼(true form)是一種計算機中對數字的二進制定點表示方法。
2、反碼
反碼是數值存儲的一種,多應用於系統環境設置,如linux平台的目錄和文件的默認許可權的設置umask,就是使用反碼原理。
3、補碼
正數:正數的補碼和原碼相同。負數:負數的補碼則是符號位為「1」。
『柒』 二進制中,正數的原碼與補碼相同嗎我的c語言教程上這么說。誰能解釋一下
二進制中,正數的原碼與補碼相同,負數是除符號位不變,其他位求反加1。
『捌』 為什麼正數的原碼 反碼 補碼 移碼是一樣的
。。。正數的移碼是原碼(等於反碼=補碼)符號位取反,其他數值位不變。。。並。不一樣
『玖』 二進制正,負數的原碼,反碼,補碼三者之間是什麼關系
2、符號位的表示:最常用的表示方法有原碼、反碼和補碼。
(1)原碼表示法:一個機器數x由符號位和有效數值兩部分組成,設符號位為x0,x真值的絕對值|x|=x1x2x3...xn,則x的機器數原碼可表示為:
[x]原=
,當x>=0時,x0=0,當x<0時,x0=1。
例如:已知:x1=-1011B,x2=
+1001B,則x1,x2有原碼分別是
[x1]
原=11011B,[x2]原=01001B
規律:正數的原碼是它本身,負數的原碼是取絕對值後,在最高位(左端)補「1」。
(2)反碼表示法:一個負數的原碼符號位不變,其餘各位按位取反就是機器數的反碼表示法。正數的反碼與原碼相同。
按位取反的意思是該位上是1的,就變成0,該位上是0的就變成1。即1=0,0=1
(3)補碼表示法:
首先分析兩個十進制數的運算:78-38=41,79+62=141
如果使用兩位數的運算器,做79+62時,多餘的100因為超出了運算器兩位數的范圍而自動丟棄,這樣在做78-38的減法時,用79+62的加法同樣可以得到正確結果。
模是批一個計量系統的測量范圍,其大小以計量進位制的基數為底數,位數為指數的冪。如兩位十進制數的測量范圍是1——9,溢出量是100,模就是102=100,上述運算稱為模運算,可以寫作:
79+(-38)=79+62
(mod
100)
進一步寫為
-38=62,此時就說
–38的補法(對模100而言)是62。計算機是一種有限字長的數字系統,因此它的運算都是有模運算,超出模的運算結果都將溢出。n位二進制的模是2n,
一個數的補碼記作[x]補,設模是M,x是真值,則補碼的定義如下:
例:設字長n=8位,x=-1011011B,求[x]補。
解:因為
n=8,所以模
M=28=100000000B,x<0,所以
[x]補=M+x=100000000B-1011011B=10100101B
注意:這個x的補碼的最高位是「1」,表明它是一個負數。對於二進制數還有一種更加簡單的方法由原碼求出補碼:
(1)正數的補碼表示與原碼相同;
(2)負數的補碼是將原碼符號位保持「1」之後,其餘各位按位取反,末位再加1便得到補碼,即取其原碼的反碼再加「1」:[x]補=[x]反+1。
下表列出
的8位二進制原碼,反碼和補碼並將補碼用十六進製表示。
真值
原碼(B)
反碼(B)
補碼(B)
補碼(H)
+127
0
111
1111
0
111
1111
0
111
1111
7F
+39
0
010
0111
0
010
0111
0
010
0111
27
+0
0
000
0000
0
000
0000
0
000
0000
00
-0
1
000
0000
1
111
1111
0
000
0000
00
-39
1
010
0111
1
101
1000
1
101
1001
D9
-127
1
111
1111
1
000
0000
1
000
0001
81
-128
無法表示
無法表示
1
000
0000
80
從上可看出,真值+0和-0的補碼表示是一致的,但在原碼和反碼表示中具有不同形式。8位補碼機器數可以表示-128,但不存在+128的補碼與之對應,由此可知,8位二進制補碼能表示數的范圍是-128——+127。還要注意,不存在-128的8位原碼和反碼形式。
『拾』 正數的補碼等於原碼是如何算出來的
這是規定。
補碼是為負數想出來的辦法,目的是減法可以用加補碼的方法實現,補碼可用反碼加1得來,於是又有了負數的反碼。
計算機里有硬體「加法器」,有了補碼,減法也可以用加法器做了,計算機里運算速度硬體遠快於軟體,這就是反碼,補碼和原碼多樣化的原因。
(10)正數的源碼為什麼等於補碼擴展閱讀:
原碼求補碼
正數
正整數的補碼是其二進製表示,與原碼相同 。
例:+9的補碼是00001001。(備註:這個+9的補碼是用8位2進制來表示的,補碼表示方式很多,還有16位二進制補碼表示形式,以及32位二進制補碼表示形式,64位進制補碼表示形式等。)
負數
求負整數的補碼,將其原碼除符號位外的所有位取反(0變1,1變0,符號位為1不變)後加1。