原碼,補碼,反碼和ASCII編碼有什麼不同

時間 2022-02-12 01:35:11

1樓:匿名使用者

關於原碼反碼補碼,您可以借本 《計算機組成原理》看看計算機中資料的表示形式。 首先更正下樓上的說法,正數的原碼反碼補碼都相同,即0011的反碼也為0011 !!切記 舉例來說:

對於正數3,其二進位制形式為 0011,我們把 0011成為成為真值,在計算機中用0或1表示正負號,那麼 0011在計算機中原碼可以表示為00011(第一位為符號位)。反碼補碼不變。 對於負數,反碼即按位取反,比如10011可表示-3,10011為原碼,那麼符號位不變,其餘位按位取反即反碼11100.

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

獲得補碼的方法是「按位取反,末位加1」那麼10011的補碼便是11101.。。。。。。。。。。 機器數即數值在計算機中的表示形式。 不知您明白了嗎?

2樓:沙里波特

帶符號的數字,可變成各種**,見圖:

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

只有補碼,才是實用的編碼,只要掌握這種**即可。

其變換規律,可以自己摸索出來。

ascii 碼,是用七位二進位制,代表乙個符號的,如 a、b、c。。。等等。

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

3樓:羊秀英檀鳥

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

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

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

!!切記

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

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

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

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

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

不知您明白了嗎?

4樓:鄔長征稱戊

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

5樓:沙里波特

不同之處:

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

計算機中,有:補碼。

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

6樓:哀soul四醬

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

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

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

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

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

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

7樓:沙里波特

區別:原碼反碼,並無用處。

補碼,有用。

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

計算機中,只用補碼表示帶符號數。

求補碼,有更簡單的方法,也用不著原碼反碼。

所以,原碼反碼,都沒有任何用處。

讓人學習原碼反碼,不就是忽悠嗎?

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

8樓:匿名使用者

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"就得到補碼了,就是這麼簡單。

9樓:匿名使用者

(字長為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

10樓:匿名使用者

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

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

1、取-10的絕對值10;

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

3、反碼再加一。

再總結一下:

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

11樓:匿名使用者

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

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

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

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

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

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

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

12樓:沙里波特

計算機中,只有補碼,並沒有原碼和反碼。

補碼,是帶符號數,在計算機中的儲存形式。

c 語言是高階語言。

用高階語言程式設計,只能、也必須,使用正負數字,不能用補碼。

如果需要使用補碼,那就不是高階語言了。

高階語言,是不用涉及到計算機內部的。

所以,計算機內部的補碼,就和高階語言毫無關係。

在 c 語言中,討論「原碼反碼補碼」,都是沒有影的事。

有些作者,明顯是個外行,寫教材時,東拉西扯的。

顯得他是多麼的高(yu)明(chun)。

真值與碼值有何區別?原碼、反碼、補碼三者之間如何換算?

13樓:沙里波特

帶符號的數字,可變成各種**(八位的),見圖:

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

因此,就不必關心它們了。

只有補碼,才是實用的編碼。

其變換規律,你看看圖,就可以自己摸索出來。

14樓:全正肖安雙

如果原碼00000

反碼就是11111

補碼是反碼(正數)

反碼+1(負數)

真值是乙個變數本身所具有的真實值

碼值就是個表

計算機的 正數的原碼、補碼和反碼有什麼區別?

15樓:翦澤少芷荷

三:在計算機中,對任意乙個帶有符號的二進位制,都是按其補碼的形式進行運算和儲存的。之所以是以補碼方式進行處理,而不按原碼和反碼方式進行處理,是因為在

小數的原碼,反碼,補碼,負小數的原碼,補碼,反碼和移碼怎麼算,如 0 3125 10進製

公孫曜兒板妙 化為2進製是整數部分除以二知道變為1 小數部分乘以2直到變為1 符號位0表示正1表示負 正數 原碼 補碼 負數 原碼 正數部分 去掉負號 的二進位制值,且符號位 最左邊的位元位 為1反碼 正數部分 去掉負號 的二進位制值,按位取反補碼 反碼 1小數點依舊用點 定點數所謂定點數是指小數點...

原始碼反碼與補碼,原碼 反碼和補碼

8位2進製原碼反碼補碼表示法 第一位是符號位,正數為0負數為1 67的原碼是11000011,換成反碼符號位不變,其他各位依次求反 10111100,換成補碼只在反碼基礎上末位加1 55的原碼00110111,正數原碼反碼補碼相同。補碼實現55 67 00110111 把這個補碼末位減一,符號位不變...

98, 98,79, 43的原碼反碼補碼

98 原碼 01100010 反碼 01100010 補碼 01100010 98 原碼 11100010 反碼 10011101 補碼 10011110 76 原碼 01001100 反碼 01001100 補碼 01001100 76 原碼 11001100 反碼 10110011 補碼 101...