計算機 原碼 反碼 補碼

2021-08-01 13:48:03 字數 826 閱讀 7392

在計算機中,用補碼來表示數字,因為

(1)這樣可以比較方便的表示0(保證0作為正數或者負數補碼都是00000000)

(2)計算時用補碼直接加減就是最終數值(符號位參與運算)

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]補

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

計算機原碼, 反碼, 補碼

乙個數在計算機中的二進位制表示形式,叫做這個數的機器數。機器數是帶符號的,在計算機用乙個數的最高位存放符號,正數為0,負數為1.因為第一位是符號位,所以機器數的形式值就不等於真正的數值。例如上面的有符號數 10000011,其最高位1代表負,其真正數值是 3 而不是形式值131 10000011轉換...

計算機原碼,反碼,補碼

最近花了點時間對計算機的原碼,反碼和補碼進行了研究,對為什麼要有反碼和補碼以及他們這麼設計的原因有了一定的理解 機器數 乙個數在計算機中的表現形式叫做機器數,這個數有正負之分,在計算機中用乙個數的最高位 符號位 用來表示它的正負,其中0表示正數,1表示負數。例如正數7,在計算機中用乙個8位的二進位制...

計算機基礎 原碼 補碼 反碼

最近工作中用到了,補碼的概念,發現這些概念腦子裡全糊了 翻出書簡單複習一下,歸納如下 首先我們討論的都是有符號數,第一位都是符號位 正0 負1 原碼 最簡單明瞭 x 1101 x原碼 0,1101 x 1101 x原碼 1,1101 這裡注意下原碼0有兩種表示法 0原碼 0,0 0原碼 1,0 補碼...