論理回路と論理演算
コンピュータの頭脳であるCPUの中では、0と1を組み合わせて計算や判断を行う「論理回路」が働いています。複雑に見えるコンピュータも、基本となるのはたった3種類の単純な回路です。この講義では、AND・OR・NOTの論理演算と、それらを組み合わせた回路の仕組みを学びます。
3つの基本論理演算
論理演算では、入力と出力を0(偽)と1(真)で表します。基本となるのは次の3つです。
AND(論理積):入力が両方とも1のときだけ出力が1になります。「AかつB」に対応します。
OR(論理和):入力の少なくとも一方が1なら出力が1になります。「AまたはB」に対応します。
NOT(否定):入力を反転します。0なら1、1なら0を出力します。
入力のすべての組み合わせと出力を一覧にした表を真理値表と呼びます。
📘 例 入力A・Bに対する真理値表は次のとおりです。
身近な例では、ANDは「2つのスイッチが直列につながった回路(両方ONで点灯)」、ORは「並列につながった回路(どちらかONで点灯)」にたとえられます。
| A | B | A AND B | A OR B | NOT A |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
身近な例では、ANDは「2つのスイッチが直列につながった回路(両方ONで点灯)」、ORは「並列につながった回路(どちらかONで点灯)」にたとえられます。
XOR(排他的論理和)
基本3演算を組み合わせて作れる代表的な演算にXOR(排他的論理和)があります。XORは入力が異なるときだけ1を出力します(0と1→1、1と1→0)。「どちらか一方だけ」を表す演算で、後述する加算回路に欠かせません。
論理回路で足し算をする — 半加算器
2進数1桁どうしの足し算「0+0=0、0+1=1、1+0=1、1+1=10」を見ると、和の桁はXOR、桁上がり(キャリー)はANDの出力とまったく同じであることがわかります。つまりXOR回路とAND回路を1つずつ組み合わせれば、1桁の加算を行う半加算器が作れます。半加算器をさらに組み合わせると、下の桁からの桁上がりも扱える全加算器となり、何桁でも足し算できる回路が完成します。CPUの計算は、この積み重ねで実現されているのです。
💡 ポイント
- ANDは「両方1なら1」、ORは「どちらかが1なら1」、NOTは「反転」。
- 真理値表はすべての入力パターンに対する出力を整理した表。入力2つなら4行になる。
- XORは「入力が異なるとき1」。1+1で0になる点がORとの違い。
- 半加算器=XOR(和)+AND(桁上がり)。単純な回路の組み合わせで計算が実現できる。
練習問題
- A=1、B=0のとき、A AND B、A OR B、A XOR B の出力をそれぞれ答えなさい。
- A=1、B=1のとき、NOT(A AND B)の出力を答えなさい。
- 半加算器で1+1を計算したとき、「和」と「桁上がり」はそれぞれ何になるか答えなさい。
解答・解説
- 解答:AND=0、OR=1、XOR=1
解説:ANDは両方1でないので0。ORは一方が1なので1。XORは入力が異なるので1。 - 解答:0
解説:まずA AND B=1。それをNOTで反転して0。この「ANDの否定」はNAND(ナンド)と呼ばれ、実際のIC設計で最もよく使われる回路である。 - 解答:和=0、桁上がり=1
解説:2進数で1+1=10。和の桁はXOR(1,1)=0、桁上がりはAND(1,1)=1に対応する。