求原碼,反碼,補碼,原碼,反碼,補碼和移碼 原碼 1001101,反碼,補碼,移碼各是多少?

2021-03-12 16:08:03 字數 5861 閱讀 3642

1樓:百度文庫精選

內容來自使用者:liangbing609

基本概念在計算機內部表示二進位制數的方法稱為數值編碼,把一個數及其符號在機器中的表示加以數值化,稱為機器數。機器數所代表的數稱為數的真值。表示一個機器數,應考慮以下三個因素:

1.機器數的範圍

字長為8位,無符號整數的最大值是(11111111)b=(255)d,此時機器數的範圍是0~255。

字長為16位,無符號整數的最大值是

(1111111111111111)b=(ffff)h=(65535)d此時機器數的範圍是0~65535。2.機器數的符號

在算術運算中,資料是有正有負的,將這類資料稱為帶符號數。

為了在計算機中正確地表示帶符號數,通常規定每個字長的最高位為符號位,並用0表示正數,用1表示負數。3.機器數中小數點的位置

在機器中,小數點的位置通常有兩種約定:

一種規定小數點的位置固定不變,這時的機器數稱為「定點數」。

另一種規定小數點的位置可以浮動,這時的機器數稱為「浮點數」。4.原碼

正數的符號位為0,負數的符號位為1,其它位按照一般的方法來表示數的絕對值。用這樣的表示方法得到的就是數的原碼。

【例1】當機器字長為8位二進位制數時:

x=+1011011 [x]原碼=01011011

y=—1011011 [y]原碼=11011011

[+1]原碼=00000001 [-1]原碼=10000001

[+127]原碼=01111111 [16所以

2樓:秋風不落葉

正數的反碼和補碼都是和原碼相同。 \r\n負數的反碼是將其原碼除符號位之外的各位求反。負數的補碼是將其原碼除符號位之外的各位求反之後在末位再加1。

1)反碼 01001001 補碼 010010012)反碼 10100100 補碼 101001013)反碼 00111110 補碼 001111104)反碼 10000011 補碼 10000100

原碼,反碼,補碼和移碼: 原碼:1001101,反碼,補碼,移碼各是多少?

3樓:

解:首位數字表示正負不做變(1為負數,0為正數)

反碼:1110010(正數反碼等於原數,題中為負數,則除首位數對應取反)

補碼:1110011(得出反碼數基礎上末位加一)

移碼:0110011(補碼符號位第一位數字取反)

反碼是數值儲存的一種,多應用於系統環境設定,如linux平臺的目錄和檔案的預設許可權的設定umask,就是使用反碼原理。

補碼(2's ***plement)是一種用二進位制表示有號數的方法,也是一種將數字的正負號變號的方式。

移碼(又叫增碼)是符號位取反的補碼,一般用指數的移碼減去1來做浮點數的階碼,引入的目的是為了保證浮點數的機器零為全0。

補碼的設計目的是:

1.使符號位能與有效值部分一起參加運算,從而簡化運算規則.

2.使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計 所有這些轉換都是在計算機的最底層進行的,而在我們使用的彙編、c等其他高階語言中使用的都是原碼。

小數和分數的補碼:

1.十進位制分數補碼可以先將分子和分母分別表示成二進位制數,然後計算出二進位制小數,再按下面第三步的方法將求出小數的補碼形式。

2.十進位制小數的補碼也應該先將其轉換成二進位制小數,再按下面第三步的方法將求出小數的補碼形式。

4樓:大野瘦子

反碼:1,110010(除符號位以外,各位取反)補碼:1,110011(除符號位以外,各位取反,末位加一)移碼:

0,110011(對補碼符號位取反)注意:1、首先判斷原碼的正負,因為對於正數,其原碼、補碼反碼錶示形式相同(符號位為0,數值部分與真值相同)

2、對於反碼和補碼,要區別:已知[x補],求[-x補]的題目(連同符號位各位取反,末位加一)

5樓:匿名使用者

我們考試要考(權當練習):

原碼:1,001101

=>負數

=>反碼:1,110010(除符號位以外,各位取反)=>補碼:1,110011(除符號位以外,各位取反,末位加一)=>移碼:

0,110011(對補碼符號位取反)注意點:1,首先判斷原碼的正負,因為對於正數,其原碼、補碼反碼錶示形式相同(符號位為0,數值部分與真值相同)

2,對於反碼和補碼,要區別:已知[x補],求[-x補]的題目(連同符號位各位取反,末位加一)

6樓:一嘆

整數的三種碼都是一樣的,移碼的話就是加上2的n次方,負數反碼符號位不變其他位取反,補碼就是反碼再加上1。移碼加上2的n次方。

7樓:

反碼:1110010

補碼:1110011

移碼:0110011

對於負數的反碼是原碼符號位不變,其它位數取反;

補碼是反碼加一;

移碼就是在原有的補碼的基礎上對於符號取反。

8樓:合夏侯戎

這個你需要問專業人士了,不然沒人懂的的,這是***碼

9樓:匿名使用者

這是個負數,負數的反碼=它的原碼符號位不變,其他位取反。補碼=反碼+1。移碼我還沒學過,就不知道了

什麼是原碼 補碼 反碼?

10樓:謬闊顧映菱

你是在學c語言吧

其實這幾種碼制轉換不用買什麼書的,

多看幾次c語言的書,多記幾個相關的例子就可以了,

下面是一些資料,多看幾遍就行:

1、在計算機系統中,數值一律用補碼來表示(儲存)。

主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補

碼錶示的數相加時,如果最高位(符號位)有進位,則進位被捨棄。

2、補碼與原碼的轉換過程幾乎是相同的。

數值的補碼錶示也分兩種情況:

(1)正數的補碼:與原碼相同。

例如,+9的補碼是00001001。

(2)負數的補碼:符號位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1。

例如,-7的補碼:因為是負數,則符號位為「1」,整個為10000111;其餘7位為-7的絕對值+7的原碼

0000111按位取反為1111000;再加1,所以-7的補碼是11111001。

已知一個數的補碼,求原碼的操作分兩種情況:

(1)如果補碼的符號位為「0」,表示是一個正數,所以補碼就是該數的原碼。

(2)如果補碼的符號位為「1」,表示是一個負數,求原碼的操作可以是:符號位為1,其餘各位取

反,然後再整個數加1。

例如,已知一個補碼為11111001,則原碼是10000111(-7):因為符號位為「1」,表示是一個負

數,所以該位不變,仍為「1」;其餘7位1111001取反後為0000110;再加1,所以是10000111。

在「閒扯原碼、反碼、補碼」檔案中,沒有提到一個很重要的概念「模」。我在這裡稍微介紹一下「模」

的概念:

「模」是指一個計量系統的計數範圍。如時鐘等。計算機也可以看成一個計量機器,它也有一個計量範

圍,即都存在一個「模」。例如:

時鐘的計量範圍是0~11,模=12。

表示n位的計算機計量範圍是0~2(n)-1,模=2(n)。【注:n表示指數】

「模」實質上是計量器產生「溢位」的量,它的值在計量器上表示不出來,計量器上只能表示出模的

餘數。任何有模的計量器,均可化減法為加法運算。

例如:假設當前時針指向10點,而準確時間是6點,調整時間可有以下兩種撥法:

一種是倒撥4小時,即:10-4=6

另一種是順撥8小時:10+8=12+6=6

在以12模的系統中,加8和減4效果是一樣的,因此凡是減4運算,都可以用加8來代替。

對「模」而言,8和4互為補數。實際上以12模的系統中,11和1,10和2,9和3,7和5,6和6都有這個特

性。共同的特點是兩者相加等於模。

對於計算機,其概念和方法完全一樣。n位計算機,設n=8,

所能表示的最大數是11111111,若再

加1稱為100000000(9位),但因只有8位,最高位1自然丟失。又回了00000000,所以8位二進位制系統的

模為2(8)。

在這樣的系統中減法問題也可以化成加法問題,只需把減數用相應的補數表示就可以

了。把補數用到計算機對數的處理上,就是補碼。

另外兩個概念

一的補碼(one's

***plement)

指的是正數=原碼,負數=反碼

而二的補碼(two's

***plement)

指的就是通常所指的補碼。

這裡補充補碼的代數解釋:

任何一個數都可以表示為-a=2^(n-1)-2^(n-1)-a;

這個假設a為正數,那麼-a就是負數。而根據二進位制轉十進位制數的方法,我們可以把a表示為:a=k0*2^0+k1*2^1+k2*2^2+……+k(n-2)*2^(n-2)

這裡k0,k1,k2,k(n-2)是1或者0,而且這裡設a的二進位制位數為n位,即其模為2^(n-1),而2^(n-1)其二項是:1+2^0+2^1+2^2+……+2^(n-2),而式子:-a=2^(n-1)-2^(n-1)-a中,2^(n-1)-a代入a=k0*2^0+k1*2^1+k2*2^2+……+k(n-2)*2^(n-2)和2^(n-1)=1+2^0+2^1+2^2+……+2^(n-2)兩式,2^(n-1)-a=(1-k(n-2))*2^(n-2)+(1-k(n-3))*2^(n-3)+……+(1-k2)*2^2+(1-k1)*2^1+(1-k0)*2^0+1,而這步轉化正是取反再加1的規則的代數原理所在。

因為這裡k0,k1,k2,k3……不是0就是1,所以1-k0,1-k1,1-k2的運算就是二進位制下的取反,而為什麼要加1,追溯起來就是2^(n-1)的二項式最後還有一項1的緣故。而-a=2^(n-1)-2^(n-1)-a中,還有-2^(n-1)這項未解釋,這項就是補碼裡首位的1,首位1在轉化為十進位制時要乘上2^(n-1),這正是n位二進位制的模。

11樓:嚴金蘭易黛

數在計算機中是以二進位制形式表示的。

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

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

一個有符號定點數的最高位為符號位,0是正,1是副。

以下都以8位整數為例,

原碼就是這個數本身的二進位制形式。

例如1000001

就是-1

0000001

就是+1

正數的反碼和補碼都是和原碼相同。

負數的反碼是將其原碼除符號位之外的各位求反[-3]反=[10000011]反=11111100負數的補碼是將其原碼除符號位之外的各位求反之後在末位再加1。

[-3]補=[10000011]補=11111101一個數和它的補碼是可逆的。

為什麼要設立補碼呢?

第一是為了能讓計算機執行減法:

[a-b]補=a補+(-b)補

第二個原因是為了統一正0和負0

正零:00000000

負零:10000000

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

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

[10000000]補

=[10000000]反+1

=11111111+1

=(1)00000000

=00000000(最高位溢位了,符號位變成了0)有人會問

10000000這個補碼錶示的哪個數的補碼呢?

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

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

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

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

原碼反碼和補碼有什麼區別?原碼反碼和補碼區別

關於原碼反碼補碼,您可以借本。計算機組成原理 看看計算機中資料的表示形式。首先更正下樓上的說法,正數的原碼反碼補碼都相同,即0011的反碼也為0011 切記。舉例來說 對於正數3,其二進位制形式為 0011,我們把 0011成為成為真值,在計算機中用0或1表示正負號,那麼 0011在計算機中原碼可以...

1的原碼,補碼,反碼是什麼,0的原碼 反碼 補碼是什麼?

1 機器數一個數在計算機中的二進位制表示形式,叫做這個數的機器數。機器數是帶符號的,在計算機用一個數的最高位存放符號,正數為0,負數為1.比如,十進位制中的數 3,計算機字長為8位,轉換成二進位制就是00000011。如果是 3,就是 10000011 那麼 1,就是10000001 2.原碼 原碼...

計算機的原碼,反碼,補碼。寫出 98的8位原碼 反碼 補碼。求詳細解答,只寫答案的勿答。謝謝

解答過程 正數的原碼 反碼和補碼相同。負數的反碼在原碼基礎上進行 除符號位外各位取反 操作而來 負數的補碼在反碼的基礎上進行 末位加1 操作而來。符號位 正數用0表示,負數用1表示。假設機器字長為8位。89的二進位制為1011001,98的二進位制為1100010 89 原碼 01011001 即0...