原碼,反碼,補碼錶示法

首先,咱們引入一些相關的概念.編碼

機器數: 數據在計算機中的表示形式。 數的符號存在最高位(左邊),0表明正數,1表明負數。分紅有符號和無符號兩種。基礎

A.對於無符號的數值,整個都是數值區。方法

B. 對於有符號的數值,數據分紅兩部分:符號位+數值區。數據

小數點:隱含表示,不佔位置。計算機

A. 對於無符號數值,小數點在最左邊,表明是純小數。在右邊,表明純整數。

B. 對於有符號的數值,小數點在數值區最左邊,表明是純小數。在數值區右邊,表明純整數。

真值:機器數對應的真實數值。

 

爲了方便計算,帶符號的機器數分紅原碼、反碼和補碼的不一樣編碼方法。

1. 原碼

左邊的第一位表示符號(0爲正,1爲負), 其他位表示數值.

真值變成原碼的轉換方法:

(1)取真值的絕對值的2進製表示。

(2)左邊第一位添加符號。  

例如:

考慮一個字節的存儲,-127, 絕對值爲127的2進製表示爲 0111 1111, 添加符號(1)爲 1111 1111。

當真值=0的時候,[+0]能夠表示成 0000 0000, [-0]能夠表示成 1000 0000。

2. 反碼

反碼的表示方法是:

(1)若是是正數,反碼與原碼同樣。

(2)若是是負數,反碼是符號位不變,原碼其他各個位取反.

例如:

[+127]=0111 1111, [+127]=0111 1111,

[-127]=1111 1111, [-127]=1000 0000。

[+0]=0000 0000, [+0]=0000 0000,

[-0]=1000 0000, [-0]=1111 1111。

3. 補碼

補碼錶示方法:

(1)若是是正數, 補碼與原碼同樣。

(2)若是是負數,在反碼的基礎上+1。

例如:

[+127]=0111 1111, [+127]=0111 1111,[+127]=0111 1111

[-127]=1111 1111, [-127]=1000 0000,[-127]=1000 0001

[+0]=0000 0000, [+0]=0000 0000,[+0]=0000 0000,

[-0]=1000 0000, [-0]=1111 1111,[-0]=0000 0000。

咱們發現,原碼、反碼、補碼對於正數和+0都是同樣的。對於0,補碼的表示惟一。

相關文章
相關標籤/搜索