什麼是補碼 什麼是原碼 原碼和補碼是什麼意思

2023-06-26 22:35:13 字數 6731 閱讀 2014

1樓:yangzhi涯

8位字長原碼錶示的有符號定點小數真值範圍: ,即: -127d/128)d ~ 127/128)d。

8位字長補碼錶示的有符號定點小數範圍: ~即: -1d ~ 127/128)d。

補碼的一些資訊:

補碼(2's complement)是一種用二進位制表示有號數的方法,也是一種將數字的正負號變號的方式,常在電腦科學中使用。在臺灣地區通常稱為二補數。

一個數字的補碼就是將該數字作位元反相運算(即一補數或反碼),再將結果加 1,即為該數字的補碼。在補碼系統中,一個負數就是用其對應正數的補碼來表示。

補碼系統的最大優點是可以在加法或減法處理中,不需因為數字的正負而使用不同的計算方式。只要一種加法電路就可以處理各種有符號數加法,而且減法可以用一個數加上另一個數的補碼來表示,因此只要有加法電路及補碼電路即可完成各種有號數加法及減法,在電路設計上相當方便。

另外,補碼系統的 0 只有一個表示方式,這點和一補數系統不同(在一補數系統中,0 有二種表示方式),因此在判斷數字是否為 0 時,只要比較一次即可。

2樓:做而論道

在計算機系統中,數值,一律採用補碼錶示和儲存。

計算機,並不使用原碼和反碼。

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

討論原碼反碼,又有什麼意義呢?

補碼,其實,它就是一個【代替負數】的正數。

使用了補碼之後,在計算機中,就沒有負數了。

順便,也就消除了減法運算。

那麼,計算機只需配置一個加法器,就可以走遍天下了。

補碼(即一個正數),怎麼就能【代替負數】呢?

理論基礎在於:計數系統的週期性。

比如,2 位 10 進位制數(0~99),計數週期就是 10^2 = 100。

那麼: 25 - 1 = 24

25 + 99 = 一百) 24

只要你:捨棄進位,僅保留 2 位數,+99 就能代替-1。

同理,+98 也能代替-2。

這些正數,就可以稱為「負數的補數」。

變換公式: 負數的補數 = 負數 + 週期。

另外還有:時針,週期是 12,倒撥 3小時、正撥 9小時,等效吧?

三角函式的週期是 2π,-2、+3π/2,正、負角度,也等效。

這些負數變正數,公式都是: 正數 = 負數 + 週期。

反之,也成立,即: 負數 = 正數 - 週期。

計算機中,8 位 2 進位制數,週期就是 2^8 = 256。

-1 的補碼,就是:-1 + 256 = 255 = 1111 1111(二進位制)。

2 的補碼,就是:254 = 1111 1110(二進位制)。

求補碼,用「負數+週期」,直接就能求出補碼。

不必經過「原碼反碼取反加一符號位不變」。

數學不好的老外,才需要弄哪些騷操作!

只有負數,才需要變換成補碼(正數)。

正數,不需要變換,也不允許變換,必須直接去相加運算。

所以,正數,它就沒有補碼。

有人說:正數的。。。都相同。

這就是被老外帶到溝裡去了。

原碼反碼,在計算機中,都是不存在的,哪還有什麼相同!

原碼和補碼是什麼意思

3樓:沙裡波特

原碼,沒有任何意義。

補碼具有:用正數代替負數,把減法變成加法運算的功能。

這樣,計算機中,只需用一個加法器,便可進行加減運算了。

所以,在計算機中,只是使用補碼。根本就不用原碼和反碼。

對於鐘錶,倒撥 4 小時,可用正撥 8 小時代替。

對於十進位制數,減一,可以用 +99 代替。

比如:24-1 = 23

忽略進位,只取低兩位,結果就是相同的。

這裡用來代替負數的正數,就叫做「補數」。

計算機用二進位制,就叫做「補碼」。

正數,直接運算即可,不用求補碼。

負數的補碼是:模+該負數。

八位二進位制的模是:2 的 8 次方=256。

1 的補碼,就是:256-1 =255 = 1111 1111(二進位制)。

2 的補碼,就是:256-2 =254 = 1111 1110(二進位制)。

128 的補碼,就是:256-128 =128 = 1000 0000(二進位制)。

求補碼,用公式就可得出,並不需要繞道原碼反碼符號位。

4樓:歷媚琴易文

原碼就是直接轉化為二進位制的。補碼是帶符號位的表示,對於正數是沒有區別的,對於負數是不一樣的。比如。-1,用8位表示的補碼就是11111111

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

5樓:沙裡波特

哪有什麼原碼、反碼!

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

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

數字 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。

計算機計算如下:

6樓:匿名使用者

計算機只能識別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等其他高階語言中使用的都是原碼。

什麼是原碼、反碼、補碼?

7樓:京安嫻邸暢

1):補碼加法公式。

x+y]補。

x]補。[y]補。

2):補碼減法公式。

x-y]補。

x]補-[y]補。

x]補。[-y]補。

其中:[-y]補稱為負補,求負補的辦法是:對補碼的每一位(包括符合位)求反,且未位加1.

8樓:沙裡波特

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

只要掌握了補碼,即可。

小數補碼的定義式:

x]補 = x ; 0 ≤ x < 1[x]補 = 2+x ; 1 ≤ x < 0例如:x = 1000, 則 [x]補 = 0010 1000。

x = 1000, 則 [x]補 = 1100 1000。

原碼反碼補碼有什麼用

9樓:沙裡波特

使用補碼,可以把減法轉換成加法運算,從而簡化硬體。

原碼和反碼,都沒有這種功能,所以,在計算機中,並不使用原碼和反碼。

因此,原碼和反碼,沒有任何用處。

對於兩位十進位制數,減一,可以用 +99 代替。

忽略進位,只取兩位結果,這兩種演算法,功能就是相同的。

99,就稱為:「-1 的補數」。 99 = 100-1。

對於二進位制,就稱為:補碼。-1 的八位補碼是:256-1 = 255 = 1111 1111(二進位制)。

藉助於補數,就能用加法,代替減法運算。

這就是補碼的用處。

原碼,反碼,補碼的定義是什麼。

10樓:沙裡波特

有符號數,有三種表示方法,即原碼、反碼和補碼。

但是,在計算機系統中,數值一律用補碼來表示和儲存。

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

想要理解補碼,要先從補數開始。

鐘錶的時針轉一圈,週期是 12 小時。

倒撥 3 小時,就可以用正撥 9 小時代替。

9 就是-3 的補數。 9 = 12-3。

同理,分針倒撥 x 分,就可以用正撥(60-x)代替。

60 是分針的週期。

對於兩位十進位制 0~99,週期就是一百。

這時,減一,你就可以用 +99 代替。

結果取兩位,捨棄進位。這兩種演算法,功能就是相同的。

99,就稱為-1 的補數。

98,就是-2 的補數。

負數的補數 = 週期 + 該負數。

利用補數,就可以用加法,代替減法運算。

正數,不需要求補數。

計算機使用二進位制,補數,就改稱:補碼。

八位二進位制,共有 256 個數字。負數的補碼 = 256+該負數。

16 位二進位制,共有 2^16 個數字。負數的補碼 = 65536+ 該負數。

這就是補碼的定義式。在你的書上,一定能找到這種算式。

在八位時:1 的補碼是:256-1 = 255 = 1111 1111(二進位制)。

2 的補碼是:254 = 1111 1110。

3 的補碼是:253 = 1111 1101。

128 補碼:128 = 1000 0000。

有了補碼,計算機僅需要一個加法器,就可以加減通用了。

而原碼和反碼,不具備這種能力。

所以,原碼和反碼,究竟是怎麼定義,就不必關心了。

因為,它們,毫無用處。

原碼,反碼,補碼是什麼補碼,原碼,反碼什麼的。有什麼作用啊!

正數的原碼,補碼,反碼相同,先求原碼,因為正數的原碼就是他的真值。負數的原碼是在正數的原碼基礎上,最高位置1,即符號位。然後再求反碼 符號位1不變,後面的所有位取反,然後再求補碼 在反碼的基礎上,末尾加1 注意負數的反碼,補碼除了符號位外也不是該負數的真值,而是原碼的除了最高位後面的數是真值的絕對值...

原碼 反碼 補碼的基本概念,原碼 反碼和補碼錶示的規則分別是什麼?

原碼 一個整數,按照絕對值大小轉換成的二進位制數,稱為原碼。比如00000000 00000000 00000000 00000101是5的 原碼。反碼 將二進位制數按位取反,所得的新二進位制數稱為原二進位制數的反碼。取反操作指 原為1,得0 原為0,得1。1變0 0變1 比如 將00000000 ...

1的原碼,補碼,反碼是什麼0,1,1的原碼反碼補碼是什麼?8位二進位制整數

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