計算機中關於帶符號整數的反碼 補碼 真值和原碼

2023-06-22 17:45:19 字數 6024 閱讀 8148

1樓:科創

原碼:是指將最高位作為符號位(0表示正,1表示負),其它數字位代表數值本身的絕對值的數字表示方式。

例如:數字6 在計算機中原碼錶示為:0 000 0110

其中,第一個數字0是符號位,0表示正數,0 000110是數字6的二進位制資料表示。

數字-6 在計算機中原碼錶示為:1 000 0110

以上是在8位計算機中的原碼錶示,反碼錶示規則為:如果是正數,則表示方法和原碼一樣;如果是負數,符號位不變,其餘各位取反,則得到這個數字的反碼錶示形式。

例如,數字6 在8位 計算機中的反碼就是它的原碼:00000110

數字-6 在 8位計算機中的反碼為:11111001

補碼是計算機表示有號資料的一般方式,其規則為:如果是正整數,則表示方法和原碼一樣。

如果是負數,則將數字的反碼加上1(相當於將原碼數值位取反然後在最低位加1)。

例如:數字6 在8位 計算機中的補碼就是它的原碼:00000110

數字-6 在8 位 計算機中的補碼系統中為:1111 1010

如果數字 -6再取補碼是(0000 0101+1)=0000 0110 ( 6)

減法通常轉化為加法進行運算,將被減數與減數的補碼進行加法運算,即可得出差。

舉例:15-5計算方法:

11 1111 111(進位)

ps: 補碼之所以會存在,是為了讓負數變成能夠進行『+』運算的整數。在計算機系統中,數值一律用補碼來表示和儲存。

原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路。負0與正0的表示方法相同。

注意:0的反碼、補碼都為零。

在用補碼方式表示n位帶符號整數時,最大數為2的n次方-1,最小數為負的2的(n-1)次方。以8bits為例,最大數為127(對應的二進位制數01111111),最小數為-128(對應的二進位制數為10000000)。由於計算機中存在位數的限制,整數溢位的問題就是不可避免的。

總結起來,整數的加法運算會產生以下幾種情況。

兩個正數相加,如果最高位變成了1,則產生了正溢位。

兩個負數相加,如果最高位變成了0,則產生了負溢位。

一正一負相加,不會產生溢位。

2樓:做而論道

計算機,使用二進位制數。

八位二進位制數是:0000 0000~1111 1111。

這些二進位制數,都是正整數。

那麼,把它們換算成十進位制,就是:0~255。

在不同應用場合,它們可以代表:數字、英文字元、漢字、聲音、影象。。。

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

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

只要掌握「數值與補碼」的換算,就可以了。

真值,又是什麼呢?

是「true form」嗎? 這就是原碼。是沒有用的垃圾。

8 位補碼代表的數值,可見下表:

計算機原碼反碼補碼怎麼算

3樓:象拔蚌燒賣

計算機原碼反碼補碼計算方法:

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

1]原 = 0000 0001

1]原 = 1000 0001

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

即[-127 , 127]

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

2、反碼。反碼的表示方法是:正數的反碼是其本身。負數的反碼是在其原碼的基礎上, 符號位不變,其餘各個位取反。

1] =00000001]原 = 00000001]反。

1] =10000001]原 = 11111110]反。

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

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

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

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

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

4樓:沙裡波特

計算機中,並沒有原碼和反碼,只是使用補碼,代表正負數。

使用補碼的意義:可以把減法或負數,轉換為加法運算。從而簡化計算機的硬體。

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

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

9,就稱為-3 的補數。

計算方法:12-3 = 9。

對於分針,倒撥 x 分,就可以用正撥 60-x 代替。

如果,限定了兩位十進位制數 (0~99),週期就是 100。

那麼,減一,就可以用 +99 代替。

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

於是,99 就是 -1 的補數。

其它負數的補數,大家可以自己求!

求出了負數的補數,就可用加法,代替減法了。

計算機中使用二進位制,補數,就改稱為【補碼】。

常用的八位二進位制是:0000 0000~1111 1111。

它們代表了十進位制:0~255,週期就是 256。

那麼,-1,就可以用 255 = 1111 1111 代替。

所以:-1 的補碼,就是 1111 1111 = 255。

同理:-2 的補碼,就是 1111 1110 = 254。

繼續:-3 的補碼,就是 1111 1101 = 253。

最後:-128,補碼是 1000 0000 = 128。

計算公式:負數的補碼=256+這個負數。

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

也可以說,正數本身就是補碼。

補碼的應用如: 7-3 = 4。

用補碼的計算過程如下:

7 的補碼=

3的補碼=

相加

得: (1)= 4 的補碼。

捨棄進位,只保留八位,作為結果即可。

這就是:使用補碼,加法就代替了減法。

所以,在計算機中,有一個加法器,就夠用了。

原碼和反碼,都沒有這種功能。

原碼和反碼,毫無用處。計算機中,根本就沒有它們。

計算機如何區別原碼與補碼

5樓:匿名使用者

計算機沒辦法區分任何檔案形式的存在,本質上就是超多的高低電路在做布林運算

不管是原碼,反碼,補碼都是以二進位制的形式轉換而來,為什麼用二進位制,就是為了契合計算機的高低電路,所有的計算數都是以補碼轉成高低電路的,在做電路計算。

開發人員(10進位制)--編譯器(2進位制)--作業系統(補碼)--計算機硬體(高低電路)

這麼描述比較通俗,但不嚴謹,真的感興趣可以從作業系統和資料結構入手。

6樓:網友

原碼就是早期用來表示數字的一種方式: 一個正數,轉換為二進位制位就是這個正數的原碼。負數的絕對值轉換成二進位制位然後在高位補1就是這個負數的原碼。

正數的補碼與原碼相同,負數的補碼為 其原碼除符號位外所有位取反(得到反碼了),然後最低位加1.正數的反碼和補碼都與原碼相同。

負數的反碼為對該數的原碼除符號位外各位取反。

負數的補碼為對該數的原碼除符號位外各位取反,然後在最後一位加1

7樓:沙裡波特

使用補碼的意義在於:可把負數變正數,可把減法變加法。

從這個實用性來講,計算機中,只是用補碼。原碼根本就不存在。

計算機,是執行程式的。程式,都是由人,編寫的。

所以,不是計算機來區別原碼、補碼。

而是由人,來區別。

如果限定,只是使用兩位十進位制數 0~99,共有一百個。

那麼,減一,就可以用 +99 代替:

只保留兩位,忽略進位,結果就是相同的。

99,就稱為-1 的補數。

看到了嗎? 出現了進位。

如果你忽略了進位,實際上就是減法運算!

--這時,99 就是補數,是當做-1 來用的。

如果不忽略進位,結果就是 1 百 23,這還是加法運算。

此時,99,就是正常的數字。

一個**,到底是原來的數字,還是代表負數?

就看你怎麼對待它了。

這些都是由程式設計人,來決定。

計算機,它才不管這些。

8樓:匿名使用者

正負整數都用補碼進行儲存,0開頭就是正整數 補碼=原數的二進位制,1開頭就是負整數,再補碼一次就是原碼的二進位制。

9樓:匿名使用者

個人的理解重心主要要搞清為什麼有原碼/反碼/補碼。

為什麼會出現這三種編碼制式?

你肯定是這個沒搞清,這個搞清楚了,不存在什麼區不區分的問題。

為什麼計算機中帶符號數採用補碼錶示

10樓:做而論道

為什麼用補碼錶示負數?

原理:用加法運算,也可以產生減法的效果。

目的:簡化計算機的硬體。在兩位數之內,+99,就可以代替-1。

如: 24 - 1 = 23

只取兩位,這兩種演算法,功能就是相同的。

加上 99,就相當於,減一!物極必反,聽說過吧?

99,就是-1 的補數。鐘錶的分針,正撥 59,也相當於倒撥 1 分鐘!

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

八位二進位制:0000 0000~1111 1111(十進位制255)。

255(=1111 1111),就是-1 的補碼。

254(=1111 1110),就是-2 的補碼。

負數的補碼 = 2^n + 該負數。(n 是二進位制的位數。)

藉助於補碼,在計算機中,只需配置一個加法器,即可。

正數,沒有補碼,直接參加計算即可。

11樓:煙雅美奇原

爭議因為計算機中用補碼錶示帶符號數時,減法運算可以變成加負數,而負數用補碼錶示後,可以直接按二進位制數進行加法運算。這樣適應計算機硬體加法器進行運算。

12樓:信曼寒蕢飲

採用補碼運算具有如下兩個特徵:

1)因為使用補碼可以將符號位和其他位統一處理,同時,減法也可以按加法來處理,即如果是補碼錶示的數,不管是加減法都直接用加法運算即可實現。

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

這樣的運算有兩個好處:

1)使符號位能與有效值部分一起參加運算,從而簡化運算規則。從而可以簡化運算器的結構,提高運算速度;(減法運算可以用加法運算表示出來。)

2)加法運算比減法運算更易於實現。使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計。

計算機中符號位是什麼

計算機中的符號位,就是在處理二進位制資料時,專門規5261定有一位,是用來確4102定資料的正負,符號位是16531表示負數,是0表示正數。這裡說的是有符號數,這個符號位通常是資料的最高位,如8位資料,左邊第一位是符號位,後邊七位用來表示資料大小。擴充套件資料 計算機中的有符號數有三種表示方法,即原...

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

原碼 就是原碼,真實的碼 反碼 在原碼的基礎上,符號位不變,數值位按位取反補碼 1 正數的補碼 與原碼相同。例1 9的補碼是00001001。2 負數的補碼 符號位為1,其餘位為該數絕對值的原碼按位取反然後整個數加1。計算機的原碼,反碼,補碼是怎麼回事?可以舉例說明嗎?原碼 反碼和補碼是計算機中對 ...

計算機中的URL是什麼,計算機中「URL」是指什麼?

url 統一資源定位符 計算機中 url 是指什麼?url是uniform resource locator的英文縮寫。中文意思是 統一資源定位符 在計算機中 url 是指 是用於完整地描述internet上網頁和其他資源的地址的一種標識方法。統一資源定位符,也被稱為網頁地址,是因特網上標準的資源的...