天天看點

原碼、反碼和補碼的詳細運算過程

在計算機内,有符号數有3種表示法:原碼、反碼和補碼,所有資料的運算都是采用補碼進行的。

原碼:二進制定點表示法,即最高位為符号位,‘0’表示正,‘1’表示負,其餘位表示數值的大小。

反碼:正數的反碼與其原碼相同,負數的反碼是對其原碼逐位取反,但符号位除外。

補碼:正數的補碼與其原碼相同,負數的補碼是在其反碼的末尾加1。

例如:

分别用原碼、反碼和補碼表示+7和-7

先計算得到7的二進制數為111

原碼:

符号位 數值位
+7 0000111
-7 1 0000111

反碼:

符号位 數值位
+7 0000111
-7 1 1111000

補碼:

補碼:

符号位 數值位
+7 0000111
-7 1 1111001

注:負數的補碼在加1後可能導緻符号位變化

如: 0  1111111在末尾加1  得到  1   0000000

練習:

  1. 已知某數的原碼為10110100B,試求該數的反碼和補碼。
符号位 數值位
原碼 1 0110100
反碼 1 1001011
補碼 1 1001100
  1. 已知某數的補碼為11101110B,試求其原碼。
符号位 數值位
補碼 1 1101110
反碼 1 1101101
原碼 1 0010010

繼續閱讀