在計算機系統中,資料的表示與儲存都是以0或1的形式,而表示這些0或1,我們可以將外部資料通過數位電路進行編碼,對於有符號數,在計算機系統中有三種編碼,即我們通常所了解的編碼:原碼,反碼,補碼,而無符號數沒有原碼,反碼,補碼之分,況且,我覺得在計算機儲存系統領域討論無符號數是沒什麼意義的
原碼:正數原碼 = 0 + 正數絕對值
負數原碼 = 1 + 負數絕對值
例如:+20的原碼:00010100
- 20的原碼:10010100
反碼:正數反碼 = 正數原碼
負數反碼 = 負數原碼符號位的1不變,絕對值部分按位取反
例如:+20的原碼:00010100
+20的反碼:00010100
- 20的原碼:10010100
- 20的反碼:11101011
補碼:正數補碼 = 正數反碼 = 正數原碼
負數補碼 = 負數反碼符號位的1不變,絕對值部分+1
例如:+20原碼:00010100
+20反碼:00010100
+20補碼:00010100
- 20原碼:10010100
- 20反碼:11101011
- 20補碼:11101110
總結:求解有符號數[正數與負數]的補碼的方法:
對於正數:
補碼 = 反碼 = 原碼
對於負數:
1.補碼 = 原碼 -----[原碼符號位不變,其餘位按位取反]-----> 反碼 -----[反碼符號位不變,末位+1]-----> 補碼
2.補碼 = 負數的絕對值的原碼 -----[按位取反,末位+1]-----> 補碼
補碼的運算原理:
在計算機系統中,cpu僅僅只有加法電路,沒有減法電路,採用補碼運算的目的,是將減法運算變為加法運算,同時,補碼的運算是將符號位也視為資料共同參與資料的運算,其運算結果依然是補碼
補碼的性質:
1.原碼與其補碼互為補數關係
2.補碼再求補碼等於該補碼的原碼
3.補碼的正零與負零表示方法相同
補碼的加減運算
原文 計算機中採用補碼進行加法運算,並約定儲存單元和運算暫存器中的數都採用補碼表示,資料運算結果也用補碼表示。定點小數補碼加法的運算公式為 x 補 y 補 x y 補 mod 2 具體證明過程見教材。因此在模2定義下,兩個定點小數的補碼之和等於兩個數和的補碼。反過來,兩個數相加所得到的和的補碼等於這...
補碼加減運算
1 補碼加法運算 兩個相加的數無論正負,只要表示成對應的補碼形式,則可直接按二進位制規則相加,且符號位作為數的一部分直接參與運算,所得結果就是和的補碼形式,用關係式表示 x 補 y 補 x y 補2 補碼減法運算 x y 補 x y 補 x 補 y 補 y 補稱為 y 補的機器負數。不管 y的真值是...
位運算 補碼
令x x 1 x,直到x變為0。原理 x x 1 會把x的二進位制中最後乙個1變為0.整數x和2 n的模 x 2 n 1 原理 2 n 1 的二進位制是n個1,和x進行與運算,會保留x的二進位制的後n位 計算機中的有符號數有三種表示方法,即原碼 反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號...