2の補数とは?意味をわかりやすく簡単に解説

2の補数とは?意味をわかりやすく簡単に解説

2の補数 とは

2の補数は、負の整数をコンピュータで表現するための方法です。正の整数を2進数で表すのに対し、負の整数は2の補数表現を用いることで、加減算の処理を簡素化できます。

具体的には、ある正の整数Nの2の補数は、2のNビット目(Nがmビットで表現されるとき、2m)からNを引いた値として定義されます。この表現を用いることで、減算を符号なしの加算として処理できます。

この方法は、コンピュータ内部で効率的に演算を行うために広く用いられています。特に、符号付き整数の加減算において、ハードウェア設計を簡略化できるという利点があります。

負数の表現と演算

「負数の表現と演算」に関して、以下を解説していきます。

  • 2の補数による負数の表現方法
  • 2の補数を使った加減算の仕組み

2の補数による負数の表現方法

2の補数表現では、最上位ビットを符号ビットとして使用します。最上位ビットが0であれば正の数、1であれば負の数となります。負の数の表現は、正の数の2の補数を求めることによって得られます。

例えば、8ビットで表す場合、-1は11111111と表現されます。これは、1(正の1)の2の補数を求めることで得られます。具体的には、1の2進数表現00000001を反転して11111110とし、さらに1を加えることで11111111となります。

10進数2進数2の補数
10000000100000001
20000001000000010
-11111111111111111
-21111111011111110
-1281000000010000000

2の補数を使った加減算の仕組み

2の補数表現の大きな利点は、減算を符号なしの加算として処理できる点です。これは、A-Bという減算を、A + (-B)という加算に置き換えることで実現します。ここで、-BはBの2の補数です。

この方法によって、コンピュータのハードウェアは減算器を必要とせず、加算器のみで加減算を処理できます。これは、ハードウェア設計の簡素化と演算速度の向上に繋がります。

演算10進数2進数結果(10進数)
3 + 23 + 20011 + 00105
3 – 23 + (-2)0011 + 11101
-3 + 2-3 + 21101 + 0010-1
-3 – 2-3 + (-2)1101 + 1110-5