論理回路と論理演算|AND・OR・NOT・XORの真理値表と半加算器
コンピュータの中の計算は、すべて0と1を組み合わせる論理演算でできています。論理演算を行う電子回路が**論理回路です。共通テストでは、真理値表を完成させる問題、回路の出力を求める問題、そして画像などのビットごとの論理演算**が出題されます。
基本の論理演算
入力を A・B、出力を X とします。1は「真(オン)」、0は「偽(オフ)」です。
AND(論理積):両方が1のときだけ1
| A | B | A AND B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
OR(論理和):どちらかが1なら1
| A | B | A OR B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
NOT(否定):0と1を反転する
| A | NOT A |
|---|---|
| 0 | 1 |
| 1 | 0 |
XOR(排他的論理和):入力が異なるときだけ1
| A | B | A XOR B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
ORとの違いは、両方が1のときに0になる点です。
NAND・NOR
NAND は AND の結果を反転したもの(両方が1のときだけ0)、NOR は OR の結果を反転したもの(両方が0のときだけ1)です。NAND だけを組み合わせれば、どんな論理回路も作れることが知られています。
身近な例で考える
- AND:「定期券を持っている」かつ「改札の時間内」なら通れる
- OR:「玄関のスイッチ」または「廊下のスイッチ」のどちらかが押されたら電灯がつく
- XOR:階段の上と下にあるスイッチで電灯を切り替える(どちらか一方を切り替えるたびに、つく・消えるが入れ替わる)
論理回路を読む
論理回路の図では、AND・OR・NOT などを記号(図記号)で表し、線でつないで組み合わせます。出力を求めるときは、入力側から順に、途中の線の値を書き込んでいくのが確実です。
例: X = (A AND B) OR (NOT C) で、A = 1、B = 0、C = 0 のとき
- A AND B = 1 AND 0 = 0
- NOT C = NOT 0 = 1
- X = 0 OR 1 = 1
入力が3つあれば、組合せは 23 = 8 通りです。真理値表を作るときは、000 から 111 まで2進数の順に並べると漏れがありません。
半加算器と全加算器
2進数の足し算も、論理回路で計算できます。
半加算器
1桁の2進数 A と B を足して、和の桁 S と桁上がり C を出す回路です。
| A | B | C(桁上がり) | S(和) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 |
表を見ると、S は A XOR B、C は A AND B と同じです。つまり半加算器は、XOR回路とAND回路を1つずつ使って作れます。
全加算器
半加算器は、下の桁からの桁上がりを足せません。下の桁からの桁上がりも含めて3つの1ビットを足す回路が全加算器で、半加算器2つとOR回路で作れます。全加算器を桁の数だけ並べると、何桁の足し算もできます。
ビットごとの論理演算
2つのビット列の、同じ位置のビットどうしで論理演算をすることをビットごとの演算といいます。
1100
AND 1010
--------
1000
白(すべて1)・黒(すべて0)との演算
| 演算 | 白(1111)と | 黒(0000)と |
|---|---|---|
| OR | 必ず白(1111) | 相手がそのまま残る |
| AND | 相手がそのまま残る | 必ず黒(0000) |
この性質を使うと、「残したい部分を白、消したい部分を黒にした画像(マスク)」と演算するだけで、画像の一部分だけを残したり消したりできます。2026年の本試験 第2問B では、背景の画像とキャラクターの画像を、OR演算とAND演算を組み合わせて合成する問題が出ました(「2026年 第2問 解説」)。
プログラムの中の論理演算
共通テスト用プログラム表記では、条件を組み合わせるときに and・or・not を使います。
tensu >= 60 and kesseki < 5:両方の条件を満たすときだけ真youbi == "土" or youbi == "日":どちらかを満たせば真
2026年の本試験 第3問 では、「(taiken <= 15) and (saichou < 10) の間繰り返す」という条件が出ました。
共通テストでの出題
- 真理値表と回路の出力:回路図から真理値表を完成させる問題、条件に合う回路を選ぶ問題。
- 半加算器:S と C の出力の組合せ。
- ビットごとの演算:2026年の本試験 第2問B(画像の合成)。
よくある間違い
- OR と XOR の混同:両方が1のとき、ORは1、XORは0です。
- NOT をかける位置:NAND は「AND の結果の否定」で、「NOT A AND NOT B」とは違います。
- 入力の組合せの数え漏れ:入力 n 個なら 2n 通り。2進数の順に並べて数えましょう。
まとめ
- AND は両方1で1、OR はどちらか1で1、NOT は反転、XOR は異なるとき1
- 回路の出力は、入力側から順に途中の値を書き込んで求める
- 半加算器:S = A XOR B、C = A AND B
- 白とのORは白、黒とのANDは黒。白とのAND・黒とのORは相手がそのまま残る