原碼反碼和補碼有什麼區別,原碼 反碼和補碼有什麼不同?

2022-05-16 08:59:59 字數 5518 閱讀 9619

1樓:朋文玉鄔鵑

關於原碼反碼補碼,您可以借本

《計算機組成原理》看看計算機中資料的表示形式。

首先更正下樓上的說法,正數的原碼反碼補碼都相同,即0011的反碼也為0011

!!切記

舉例來說:對於正數3,其二進位制形式為

0011,我們把

0011成為成為真值,在計算機中用0或1表示正負號,那麼

0011在計算機中原碼可以表示為00011(第一位為符號位)。反碼補碼不變。

對於負數,反碼即按位取反,比如10011可表示-3,10011為原碼,那麼符號位不變,其餘位按位取反即反碼11100.

補碼的存在是為了簡化計算的,其符號位一起參加運算,從而對於減法可轉化為加法。補碼的實質就是mod2。比如我們的鐘錶是mod12的,那麼14點鐘我們也可以說是下午2點。

獲得補碼的方法是「按位取反,末位加1」那麼10011的補碼便是11101.。。。。。。。。。。

機器數即數值在計算機中的表示形式。

不知您明白了嗎?

2樓:塗秀榮桓巳

原碼就是符號位加上真值的絕對值,

即用第一位表示符號,

其餘位表示值。

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

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

最後+1(即在反碼的基礎上+1)。

正數的原碼,反碼,補碼都一樣。

原碼(true

form)是一種計算機中對數字的二進位制定點表示方法。

原碼表示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:+0和-0),其餘位表示數值的大小。

3樓:沙里波特

區別?在計算機中,並不使用:原碼反碼。

在計算機中,只是使用補碼,代表正負數。

應該學習:每個補碼,都代表了什麼數字。

不應該琢磨毫無用處的:原碼反碼。

原碼、反碼和補碼有什麼不同?

4樓:羊秀英檀鳥

關於原碼反碼補碼,您可以借本

《計算機組成原理》看看計算機中資料的表示形式。

首先更正下樓上的說法,正數的原碼反碼補碼都相同,即0011的反碼也為0011

!!切記

舉例來說:對於正數3,其二進位制形式為+0011,我們把+0011成為成為真值,在計算機中用0或1表示正負號,那麼+0011在計算機中原碼可以表示為00011(第一位為符號位)。反碼補碼不變。

對於負數,反碼即按位取反,比如10011可表示-3,10011為原碼,那麼符號位不變,其餘位按位取反即反碼11100.

補碼的存在是為了簡化計算的,其符號位一起參加運算,從而對於減法可轉化為加法。補碼的實質就是mod2。比如我們的鐘錶是mod12的,那麼14點鐘我們也可以說是下午2點。

獲得補碼的方法是「按位取反,末位加1」那麼10011的補碼便是11101.。。。。。。。。。。

機器數即數值在計算機中的表示形式。

不知您明白了嗎?

5樓:鄔長征稱戊

計算機只識別0和1,正數的原碼和補碼是一樣的,反碼就是原碼對應的每個碼取反,比如3的二進位制表示為0011,其補碼為0011,反碼為1100,負數的二進位制為它的補碼+1取反,例如-3的補碼為0011,加1後為0100,再取反得到其二進位制表示1011

6樓:沙里波特

不同之處:

計算機中,並沒有:原碼、反碼。

計算機中,有:補碼。

原碼反碼和補碼區別

7樓:沙里波特

原碼反碼,都是無用的垃圾,是老師用來整治學生的工具。

補碼,是實用的**。

在計算機中,正負數就是用補碼儲存的。

8樓:路銀庚

原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其餘位表示值,如

[+1]原 = 0000 0001

[-1]原 = 1000 0001

正數的反碼是其本身

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

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

補碼的表示方法是:

正數的補碼就是其本身

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

[+1] = [00000001]原 = [00000001]反 = [00000001]補

[-1] = [10000001]原 = [11111110]反 = [11111111]補

正數的原始碼,反碼,補碼都一樣

9樓:哈嘎嘎嘎

計算機中的符號數有三種表示方法,即原碼、反碼和補碼,具體如下:

1、原碼。就是二進位制定點表示法,原碼表示法在數值前面增加了一位符號位,正數該位為0,負數該位為1,其餘位表示數值的大小,即最高位為符號位,0表示正,1表示負,其餘位表示數值的大小。

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

3、補碼。在計算機系統中,數值一律用補碼來表示和儲存。原因在於使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。

在c語言中,「原碼,反碼和補碼」有什麼不同啊?

10樓:匿名使用者

1)原碼表示

原碼表示法是機器數的一種簡單的表示法。其符號位用0表示正號,用:表示負號,數值一般用二進位制形式表示。設有一數為x,則原碼表示可記作[x]原。

例如,x1= +1010110

x2= 一1001010

其原碼記作:

[x1]原=[+1010110]原=01010110

[x2]原=[-1001010]原=11001010

在原碼表示法中,對0有兩種表示形式:

[+0]原=00000000

[-0] 原=10000000

2)補碼表示

機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。設有一數x,則x的補碼表示記作[x]補。

例如,[x1]=+1010110

[x2]= 一1001010

[x1]原=01010110

[x1]補=01010110

即 [x1]原=[x1]補=01010110

[x2] 原= 11001010

[x2] 補=10110101+1=10110110

機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。設有一數x,則x的補碼表示記作[x]補。

例如,[x1]=+1010110

[x2]= 一1001010

[x1]原=01010110

[x1]補=01010110

即 [x1]原=[x1]補=01010110

[x2] 原= 11001010

[x2] 補=10110101+1=10110110

(3)反碼表示法

機器數的反碼可由原碼得到。如果機器數是正數,則該機器數的反碼與原碼一樣;如果機器數是負數,則該機器數的反碼是對它的原碼(符號位除外)各位取反而得到的。設有一數x,則x的反碼表示記作[x]反。

例如:x1= +1010110

x2= 一1001010

[x1]原=01010110

[x1]反=[x1]原=01010110

[x2]原=11001010

[x2]反=10110101

反碼通常作為求補過程的中間形式,即在乙個負數的反碼的未位上加1,就得到了該負數的補碼。

例1. 已知[x]原=10011010,求[x]補。

分析如下:

由[x]原求[x]補的原則是:若機器數為正數,則[x]原=[x]補;若機器數為負數,則該機器數的補碼可對它的原碼(符號位除外)所有位求反,再在未位加1而得到。現給定的機器數為負數,故有[x]補=[x]原十1,即

[x]原=10011010

[x]反=11100101+1

[x]補=11100110

例2. 已知[x]補=11100110,求[x]原。

分析如下:

對於機器數為正數,則[x]原=[x]補

對於機器數為負數,則有[x]原=[[x]補]補

現給定的為負數,故有:

[x]補=11100110

[[x]補]反=10011001+1

[[x]補]補=10011010=[x]原+1

[[x]補]補=10011010=[x]原

總結一下,原碼(為負時,正時都不變)全部取反即得到反碼,反碼加

"1"就得到補碼了,就是這麼簡單。

11樓:匿名使用者

(字長為8位)

整數x的原碼指:其數符位是0表示正,1表示負,其數值部分就是x絕對值得二進位制表示。

如:原=0000 0111 【-7】原=1000 0111整數x的反碼就是數符為與原碼一樣後面取反(1變0,0變1)如:反=0111 1000 【-7】反=1111 1000整數x的補碼就是在反碼的基礎上加1

如:補=0111 1001 【-7】補=1111 1001

12樓:匿名使用者

這是要分正負的,正數的原碼、反碼、補碼都相同;負數的補碼等於其反碼加一。

原碼、反碼和補碼說的都是二進位制形式。比如說10,它的原碼是0000000000001010,反碼、補碼也是它;而負數的則不一樣。比如說-10,求它的補碼的方法如下:

1、取-10的絕對值10;

2、寫10的原碼再取反(取反就是1變0,0變1);

3、反碼再加一。

再總結一下:

10的原碼 0000000000001010(原碼)取反 1111111111110101(反碼)再加一 1111111111110110(補碼)清楚了嗎

13樓:匿名使用者

正數的原碼,反碼和補碼都一樣的,而負數就不一樣了!計算機為了讓所有的數都是進行同乙個加法運算,就有了原碼,反碼和補碼的產生!負數的補碼等於它的絕對值的原碼取反後得到這個負數的反碼,而在反碼的基礎上加1就變成了這個負數的補碼了!

下面我用8位的來舉例(最高位是符號位):

45 原碼:00101101 反碼:00101101 補碼:00101101

-45 原碼:10101101 反碼:11010010(原碼取反:

符號位不變,而其它0變1,1變0) 補碼:11010011(反碼:11010010 +1=11010011)

---------------------------------------------

明白了沒有?找這方面的書看看吧!

為什麼正整數的原碼反碼補碼相同

這是一種規定。補碼是為負數想出度來的辦法,目的是減法可以用加補碼的方法實現,補碼可用反碼加1得來,於是又有了負數的知反碼。計算機裡有硬體 加法器 有了補碼,減法道也可以用加法器做了。計算機裡運算速度,內硬體遠快於軟體,這就是反碼,補碼和原碼花樣的原因。引進補碼的作用是為了讓計算機更方便做減法 比如說...

在c語言中原碼反碼和補碼有什麼不同翱

1 原碼表示 原碼表示法是機器數的一種簡單的表示法。其符號位用0表示正號,用 表示負號,數值一般用二進位制形式表示。設有一數為x,則原碼表示可記作 x 原。例如,x1 1010110 x2 一1001010 其原碼記作 x1 原 1010110 原 01010110 x2 原 1001010 原 1...

計算機為什麼要用反碼,計算機的原碼,反碼,補碼是怎麼回事?可以舉例說明嗎

用於數值儲存。反碼是數值儲存的一種,多應用於系統環境設定。原碼是計算機機器數中最簡單的一種形式,數值位就是真值的絕對值,符號位位 0 時表示正數,符號位為 1 時表示負數,原碼又稱帶符號的絕對值。為了方便整數和小數區別,整數的符號位與數值位之間用 隔開,小數的符號位與數值位之間用 隔開。擴充套件資料...