コンピュータは内部で数値を扱うとき、0と1の2つの値だけで表す2進数を用いて計算を行います。
数値の加算や減算もすべて2進数で処理されます。
情報Ⅰ(情報1)では、2進法の数値についての計算を学習します。
また、コンピュータでは減算を効率よく処理するために補数という方法が用いられます。
さらに、負の数を表現するためには符号ビットと2の補数表現が使われます。
本記事では、これらについて解説します。
2進法の数値(2進数)の加算と減算
2進数の加算のルール
2進数の加算は、右の桁(下位桁)から順に計算し、必要に応じて桁上がり(繰り上がり)を行うという方法で行います。計算の基本的なルールは以下です。
- 0 + 0 = 0
どちらも0なので、結果は0になります。 - 0 + 1 = 1
どちらかが1であれば、結果は1になります。 - 1 + 1 = 10
2進数では2という数字は使えないため、結果は「10」となります。
このとき、0を書いて1を次の桁へ繰り上げます。
つまり、2進数の加算では
1と1を足したときに桁上がりが発生することが大きな特徴です。
このように、右の桁から順に足し算を行い、1+1のときに繰り上がりを処理しながら計算するのが、2進数の加算の基本的な方法です。
2進数の減算のルール
2進数の減算は、右の桁(下位桁)から順に計算し、必要に応じて繰り下がりを行うという方法で行います。基本的な計算ルールは以下です。
- 0 − 0 = 0
どちらも0なので、結果は0になります。 - 1 − 0 = 1
1から0を引くと、結果は1になります。 - 1 − 1 = 0
同じ数なので、結果は0になります。
しかし、次のような場合はそのまま計算できません。
- 0 − 1
この場合は、左の桁から1を借りてくる(繰り下がり)必要があります。2進数では1を借りると、その値は 2(10₂)として扱われます。
- 0 − 1 は、2 − 1 と考えて 1 になる
という計算になります。このとき、借りた桁は 1減ることになります。
例題
1010₂+0011₂と1010₂-0011₂を例題として挙げて説明を行います。

2進数の加算の解説
1010₂+0011₂の場合、最も下位の桁は0+1=1となります。
次の桁は、1+1=10になり、繰り上がりが生じます。
次の桁は、0+0ですが、繰り上がりにより、1が足されます。
最も上位の桁は1+0=1となります。これにより、答えは1101₂になります。
2進数の減算の解説
1010₂-0011₂の場合、最も下位の桁は0-1です。繰り下がりにより2-1=1となります。
次の桁は、繰り下がりにより、0-1となっていますが、1つ上の桁が0なので、最も上位の桁から繰り下がりをしてきて、2-1=1となります。
次の桁は、最も上位の桁から繰り下がりしてきた1が残っているので、1-0=1となります。
最も上位の桁は、繰り下がりにより0-0=0となります。これにより、答えは0111₂になります。
気づく人もいるとは思いますが、やっていることは、10進数の計算と同じです。繰り上がり・繰り下がりしたときの数値が異なるだけです。
補数とは
コンピュータでは、負の数を表現するために補数が用いられます。
補数とは、ある自然数に足して桁が1つ上がる数のうち、最小の数のことです。
10進数なら10の補数、2進数なら2の補数といいます。
特にコンピュータでは、2の補数が広く使われています。
補数を用いることで、コンピュータは加算回路だけで減算を処理できるようになります。
補数の求め方
1010₂を例に挙げて、補数の求め方を説明します。

1010₂の桁が1つ上がると、10000₂になります。したがって、補数は1010₂に加えたときに、10000₂になる数字と言えます。
つまり、10000₂-1010₂が補数となり、例でいうと、0110₂が補数になります。
上のような面倒な計算をしなくても、補数は、2進数を反転させて1を加えることで求めることができます。
例であれば、1010₂を反転させると、0101₂となります。これに1を加えると、0110₂となります。
補数を使った減算
一般的に、コンピュータの内部では、減算は補数を使って行われます。つまり、加算のみで計算が行われます。
例:1010₂-0011₂=0111₂
0011₂の補数は、1101₂です。
1010₂+1101₂=10111₂になります。桁上がりを無視すると、計算結果は同一になります。
コンピュータにおける整数の表現
符号ビット
符号ビットとは、数値の正負を表すビットです。
左端のビットが0のときは正の数、左端のビットが1のときは負の数です。この左端のビットを符号ビットといいます。
| 符号ビット | 意味 |
|---|---|
| 0 | 正の数 |
| 1 | 負の数 |
例えば8ビットの場合
00000101
は+5を表します。
負の数の表現
負の数は2の補数を使って表します。
例として-5を考えます。
まず+5を表します。
00000101
ビットを反転します。
11111010
1を加えて補数にします。
11111011
これが-5の表現になります。
テスト対策まとめ
情報Ⅰのテストでは、次のポイントがよく出題されます。
- 2進数の加算
1+1=10になることと、繰り上がりの処理を理解しておく。 - 2進数の減算
0−1の場合は繰り下がりが必要であり、借りた値は10₂(2)として扱う。 - 補数の計算
2進数を反転し、1を加えることで2の補数を求める。 - 負の数の表現
符号ビットと2の補数を使って表される。
これらの内容を理解しておくと、情報Ⅰの定期テストや共通テストの問題にも対応できるようになります。
確認問題
【問題1】1010₂ + 0011₂を求めよ。
【問題2】1010₂ − 0011₂を求めよ。
【問題3】0011₂の補数を求めよ。
【問題4】8ビットの2の補数表現で −5 を表すときの2進数を答えよ。
答え:【問題1】 1101₂ 【問題2】 0111₂ 【問題3】1101₂ 【問題4】11111011
まとめ
コンピュータでは数値の計算を2進数で行います。
重要なポイントは次の通りです。
- 2進数の加算では1+1で桁上がりが発生する
- 減算では繰り下がりが発生する
- コンピュータでは補数を使って減算を加算に変換する
- 負の数は符号ビットと2の補数で表現される
これらの仕組みを理解することで、コンピュータ内部で行われる整数計算の仕組みを理解することができます。
