原碼不是挺好的嗎?為什麼還要反碼和補碼?

時間 2023-02-14 23:10:09

1樓:沙里波特

數字變成各種碼,見圖:

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

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

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

既然計算機內部資料是以補碼儲存的,為什麼還要有原碼呢?原碼和反碼存在的意義是什麼? 初學者請教大家 10

2樓:聽不清啊

原碼容易理解。反碼是原碼與補碼間的橋梁。

3樓:沙里波特

正負資料,只是使用補碼來存放。

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

正負數,和補碼之間,有個關係式,可以直接互相轉換,並不需要繞道原碼反碼。

原碼和反碼,可以說,一無是處。

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

4樓:哀soul四醬

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

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

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

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

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

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

5樓:沙里波特

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

補碼,有用。

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

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

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

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

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

(-138)10 原碼、反碼和補碼是什麼?

6樓:澤男君

原碼:10001101

反碼:11110010

補碼:11110011

原碼, 反碼, 補碼的基礎概念和計算方法。

在探求為何機器要使用補碼之前, 讓我們先了解原碼, 反碼和補碼的概念。對於乙個數, 計算機要使用一定的編碼方式進行儲存。 原碼, 反碼, 補碼是機器儲存乙個具體數字的編碼方式。

1. 原碼。

原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其餘位表示值。 比如如果是8位二進位制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

第一位是符號位。 因為第一位是符號位, 所以8位二進位制數的取值範圍就是:

即[-127 , 127]

原碼是人腦最容易理解和計算的表示方式。

2. 反碼。

反碼的表示方法是:

正數的反碼是其本身。

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

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

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

可見如果乙個反碼表示的是負數, 人腦無法直觀的看出來它的數值。 通常要將其轉換成原碼再計算。

3. 補碼。

補碼的表示方法是:

正數的補碼就是其本身。

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

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

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

對於負數, 補碼表示方式也是人腦無法直**出其數值的。 通常也需要轉換成原碼在計算其數值。

7樓:沙里波特

不能用八位表示,用 16 位:

十進位制數-138 =-000 0000 1000 1010(二進位制)原碼:1000 0000 1000 1010,反碼:1111 1111 0111 0101,補碼:

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

8樓:匿名使用者

計算機以二進位制補碼儲存資料。

以16位機器為例:

比如83的二。

進製碼為:0000 0000 0101 0011由於正數的原始碼、反嗎、補碼,上面的既是原始碼,也是反碼和補碼下面通過負數講解原始碼、反碼、補碼之間的關係以-83為例。

先求出-83絕對值的原始碼:0000 0000 0101 0011計算機區分正負數通過判斷最高位符號位,1為負數、0為正數那麼-83的原始碼為:1000 0000 0101 0011反碼在原始碼基礎上按位取反,符號位不變:

補碼在反碼的基礎上加1:1111 1111 1010 1101補碼轉原始碼:補碼基礎上按位取反後加一,符號位在取反時不變,加一時最高位符號位有進製的,進製忽略。

取反:1000 0000 0101 0010加1:1000 0000 0101 0011

9樓:匿名使用者

十進位制→ 二進位制(怎麼算?要是不知道看計算機基礎的書去)47 → 101111

有符號的整數 原碼 反碼 補碼47 00101111 11010000 00101111(正數補碼和原碼相同)

-47 00101111 11010000 11010001(負數補碼是在反碼上加1)

原碼和反碼不能表示-1,對 嗎,為什麼,是因為還有別的數的原碼補碼和它一樣嗎?是幾呢?

10樓:匿名使用者

應該是錯誤的!8位整數為例說明: 原碼就是這個數本身的二進位制形式。

例如: 1000001 就是-1 0000001 就是+1 正數的反碼和補碼都是和原碼相同。 負數的反碼是將其原碼除符號位之外的各位求反如『0』在原碼和反碼中有兩種表示,補碼中只有乙個,正數的原、反、補碼都是一樣的, +0 -0原碼:

00000000 100000000反碼:00000000 111111111補碼:00000000 000000000

11樓:匿名使用者

原碼 反碼都能表示-1,比如-1的八位原碼是(11111111)2。反碼就是對原碼求補,符號位不變。(10000000)2

12樓:匿名使用者

不正確原始碼和反碼都能表示-1,只是原始碼和反碼中0都有兩種表示方法原始碼: 1.

0000000反碼: 1.

原碼、反碼、補碼都是8位的嗎?999的原碼反碼補碼是多少?

13樓:記憶e偶爾雨

1、原碼、反碼、補碼主要看他的字型資料,如果位元組型資料,佔8位,那麼它的原碼、反碼、補碼都是8位。如果字型資料,佔16位,那麼它的原碼、反碼、補碼都是16位。

2、999必須要給定其資料型別,才能確定其原碼、反碼、補碼。位元組型資料只有8位,原碼是0000 0011 1110 0111。反碼是1111 1100 0001 1000。

補碼是1111 1100 0001 1001。

3、舉例說明:

8位數可以表示0~255共256個數(記住不是255,因為還有0也要算進去),那麼8位數的模就是256。同理, 16位數可以表示0~65535共65536個數,那麼它的模就是65536 。

1)比如你要求8位數1的補碼,那麼要使1變成256,你必須給它補上255才行,所以8位數1的補碼就是255. 。同理,要求16位數1的補碼,那麼要使1變成65536,你必須給它補上65535才行,所以16位數1的補碼就是65535 。

2)比如你要求8位數2的補碼,那麼要使1變成256,你必須給它補254才行,所以8位數2的補碼就是254 。同理,要求16位數2的補碼,那麼要使1變成65536,你必須給它補上65535才行,所以16位數1的補碼就是65535 。

14樓:沙里波特

計算機,有八位機、16 位機、32 位、64 位機。。。

學習理論期間,用八位的即可。

999,超出了八位的範圍,這就是實用的資料了。

999 的各種碼,則需要你自己推導。

為什麼要使用原碼,反碼,補碼

15樓:沙里波特

哪有什麼原碼、反碼!

在計算機中,只使用補碼來存放正負數。

計算機中,以八個二進位制位,作為乙個位元組。

數字 0,存放的補碼,就是 0000 0000。

正數,依次遞增,即可:

數字 +1,其補碼就是 0000 0001。

數字 +2,其補碼就是 0000 0010。

負數,就是依次遞減:

數字-1,就是 0000 0000-1 = 1111 1111。

數字-2,就是 1111 1111-1 = 1111 1110。

歸納:正數的補碼,就是:數字本身。

負數的補碼,就是:0 + 該負數。

比如:+9 的補碼是:0000 1001。

-9 的補碼是:0000 0000-0000 1001=1111 0111。

求補碼的計算過程,並不需要原碼反碼。

有了補碼,就可以用加法,代替減法運算了。

比如:(+2)-(1) =1。

計算機計算如下:

16樓:匿名使用者

計算機只能識別0和1,使用的是二進位制。而在日常生活中人們使用的是十進位制,並且我們用的數值有正負之分。於是在計算機中就用乙個數的最高位存放符號(0為正,1為負)。

這就是機器數的原碼了。

有了數值的表示方法就可以對數進行算術運算,但是很快就發現用帶符號位的原碼進行乘除運算時結果正確,而在加減運算的時候就出現了問題,如下:假設字長為8bits

(0 0000001)原 + 1 0000001)原 = 1 0000010)原 = 2 ) 顯然不正確。

因為在兩個整數的加法運算中是沒有問題的,於是就發現問題出現在帶符號位的負數身上。對除符號位外的其餘各位逐位取反就產生了反碼。反碼的取值空間和原碼相同且一一對應。

下面是反碼的減法運算:

(0 0000001)反 + 1 1111110)反 = 1 1111111)反 = 0 ) 有問題。

(0 0000001)反 + 1 1111101)反 = 11111110)反 = 1) 正確。

問題出現在(+0)和(-0)上,在人們的計算概念中零是沒有正負之分的。(印度人首先將零作為標記並放入運算之中,包含有零號的印度數學和十進位制計數對人類文明的貢獻極大)。

於是就引入了補碼概念。負數的補碼就是對反碼加一,而正數的補碼不變,正數的原碼反碼補碼是一樣的。在補碼中用(-128)代替了(-0),這個是人為規定的,所以補碼的表示範圍為:

(-128~0~127)共256個。

注意:(-128)沒有相對應的原碼和反碼, (128) =1 0000000) 補碼的加減運算如下:

(0 0000001)補 + 1 1111111)補 = 0 0000000)補 = 0 ) 正確。

(00000001)補 + 11111110)補 = 11111111)補 = 1) 正確。

所以補碼的設計目的是:

⑴ 使符號位能與有效值部分一起參加運算,從而簡化運算規則。補碼機器數中的符號位,並不是強加上去的,是資料本身的自然組成部分,可以正常地參與運算。

⑵ 使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計。

所有這些轉換都是在計算機的最底層進行的,而在我們使用的彙編、c等其他高階語言中使用的都是原碼。

航母不是機器來的嗎?為什麼還要用大量的錢來養

航母,尤其是美國核動力航母,在外值勤至少3至4個月,海水和浮游生物是會腐蝕船身,像林肯號航母就被水母趕跑過,自身在航行過程中的機件磨損也不可避免,還有就是航母自身的小事故,如小火災,也會帶來意外的損傷,而大的事故更是損失慘重,如美國的一艘航母在越戰時,一架f4鬼怪在準備起飛時,一不小心打出了一枚火箭...

笛子不是可以變調嗎?那為什麼還要不同調子的笛子呢

以上問題,我拿笛子獨奏曲作為例子來說明。改變指法的確可以改變調,但是僅僅是調,而不是音色。比如c調的曲笛,有c調特有的音色,g調梆笛梆笛有梆笛特有的音色,g調笛子筒音作2的指法演奏的調調是c調,與c調筒音作5是在乙個調調上,但是二者音色有絕然的差別。所以曲笛和梆笛可以用指法實現同乙個調,但是他們的音...

為什麼有的人明明不是學習的料還要裝著是學習的料,不是學鋼琴的料還硬要學鋼琴

彈鋼琴的天分不只是一方面能看得出來的。第一,就是先天。手指很重要。對於手指的要求,弦樂器更嚴格一點。對於鋼琴,手指長,指頭肚大的比較好。然後就是對 的感覺,那就是樂感。不管從事什麼樂器,在 裡,樂感是乙個很重要的環節。乙個人的樂感可以從很多方面體現出來。比如說節奏。看看他對節奏的感覺,有沒有很強烈的...

化妝的時候用了粉底液還要塗粉餅嗎?為什麼?隔離霜和粉底液有什麼區別

要。粉餅起定妝的作用。隔離有防曬功能。用了粉底液還是要用粉餅的,粉底液是用作底妝的,而粉餅是用於定妝的。隔離霜是在上妝之前潔膚之後用的,作用是要使 不受彩妝的侵害和外界的汙染。有的隔離霜是紫色或綠色的,除了隔離的效果之外,還可以起修飾膚色的作用哦。粉底液的可以使 看起來光滑均勻呀。但是如果你是日常妝...

愛情真的不是永恆的嗎,為什麼愛情不是真正的永恆 為什麼

我的想法也許有點偏激 但是我認為愛情要是讓它永恆的話 那一定要有死亡來結局 只有一方死亡了 它才沒有了背叛 沒有了雜質 也許那才能說是永恆 如果你看過 菊花香 你就能理解我所說的了 也許我的想法也許有點偏激 但是我認為愛情要是讓它永恆的話 那一定要有死亡來結局 只有一方死亡了 它才沒有了背叛 沒有了...