コンピュータは内部的に「2進数」を用いてデータを処理しています。
日常的に使われる「10進数」とは異なり、2進数は「0」と「1」だけを使って数値を表します。
本記事では、2進数の足し算と引き算の基本的な方法と、負の数を扱う際の「2の補数」についてわかりやすく解説します。
2進数の足し算
2進数の足し算は、10進数の足し算とほぼ同じですが、繰り上がりの規則が異なります。
2進数では、2(10進数で2)になると桁が上がるため、「1 + 1 = 10」となります。
具体的な足し算の方法を見ていきましょう。
足し算の基本ルール
2進数の足し算には、次のような基本ルールがあります。
式 | 結果 |
---|---|
0 + 0 | 0 |
0 + 1 | 1 |
1 + 0 | 1 |
1 + 1 | 10 (繰り上がりが発生) |
実例:2進数の足し算
次に、2進数同士の足し算を具体的に見てみましょう。例えば、1011
と 0101
を足し算します。
1011
+ 0101
------
10000
この計算を順番に追ってみましょう:
- 右端の桁(1+1)は「10」になるので、0を書き、1を繰り上げます。
- 次の桁(1+0+繰り上がり1)も「10」になるので、0を書き、1を繰り上げます。
- さらに次の桁(0+1+繰り上がり1)も「10」になるので、0を書き、1を繰り上げます。
- 最後に、左端の桁(1+0+繰り上がり1)は「10」になるので、結果は
10000
となります。
2進数の引き算
2進数の引き算は、通常の引き算のように考えることもできますが、コンピュータでは一般的に「2の補数」を使うことで、引き算を足し算に置き換えます。
これにより、より効率的に計算が行えるようになります。
負の数の足し算の方法(2の補数を利用)
負の数を扱うために使われるのが「2の補数」です。
2の補数とは、ある数値のビットを反転(0を1、1を0にする)し、その後に1を加えることで得られます。
これを使うことで、引き算を足し算に変換できます。
2の補数の求め方
例えば、10進数の3を2進数に変換し、それを負の数として表現する場合、以下のステップを行います。
- まず、3を2進数で表すと
0011
です。 - 次にビットを反転すると
1100
になります。 - 最後に1を足すと
1101
になり、これが -3 を2進数で表した値(2の補数)です。
2の補数を使った引き算の例
ここでは、5 – 3 を2進数で計算してみます。
先に述べたように、引き算は2の補数を使って足し算に変換します。
0101 (5の2進数表現)
+ 1101 (-3の2進数表現)
------
10010
この計算の結果、5ビットの答えになりますが、通常は最上位ビットを無視するので、0010
つまり「2」となります。
補足:符号ビットの役割
2の補数を使って負の数を表す場合、最も左のビット(符号ビット)が重要な役割を果たします。
このビットが0であればその数値は正の数を、1であれば負の数を表します。
例として、8ビットの2進数 11000001
を考えてみます。
この場合、最上位ビットが1であるため、この数値は負数であることがわかります。
8ビットで表せる数値の範囲
8ビットの2進数が表せる数値の範囲は、2の補数を使用するかどうかで異なります。
- 2の補数を使用する場合:範囲は -128 から 127 となります。
- 最小値:
10000000
(-128) - 最大値:
01111111
(127)
- 最小値:
- 2の補数を使用しない場合:範囲は 0 から 255 です。
- 最小値:
00000000
(0) - 最大値:
11111111
(255)
- 最小値:
まとめ
本記事では、2進数の足し算と引き算について解説しました。
特に、2の補数を用いることで、負の数を扱いながらも引き算を足し算に置き換えて効率的に計算が行える点がポイントです。
コンピュータの基礎を理解するためには、2進数とその演算方法をしっかりと押さえることが重要です。
今回学んだ内容は、デジタル世界の基本であり、これを理解することで、より高度なコンピュータサイエンスの知識へのステップアップが可能になります。
コメント