LoginSignup
74
54

More than 5 years have passed since last update.

2の補数についてわかりやすく

Posted at

2の補数とは、2進数の減算において威力を発揮する(2進数を減算を加算で表すことができる)。

定義

2の補数とは2進数表示したものに、数字の0と1を入れ替え、1を足したものである。

4の場合

4の2進数表示は0100。この0100の0と1を入れ替えると1011となる。これに1を足すと1100となる。
よって、1100が4の2の補数表示となる。

やり方

減算において、マイナスがついている符号を2の補数表示し、加算する。加算した結果が2進数で表された減算の答えになる。

5-3 = 2 の場合

5は2進数で0101。3は2の補数で1101
よって
0101 + 1101 = 0010
0010は10進数で2だから、この式は正しい。
10進数 2 進数 2の補数
0000 0000
0001 0001 1111
0002 0010 1110
0003 0011 1101
0004 0100 1100
0005 0101 1011

原理

ビットを反転させるという行為は、n桁の2進数の場合、
(n桁全てが1) - (元の数字)
という計算をする行為と同じである。例えば、『4の2進数表示は0100。この0100の0と1を入れ替えると1011となる。』と先ほど述べたが、
1111 - 0100 = 1011
となる。これは4の2進数表示は0100をビット反転させたものと同じである。

以上から 5-3 = 2 の場合
0101 - 0011 = 0101 + (1111 - 0011 + 1 ) = 10000 + (0101 - 0011)
となり、4桁で考えると10000が無視されるので、2の補数を用いて減算を加算で実現できる。

74
54
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
74
54