← ブログに戻る真理値表

論理ゲート真理値表:必携リファレンスガイド

AND、OR、NOT、NAND、NOR、XOR、XNOR の完全な真理値表リファレンス。ブール式、万能ゲートの証明、CPU での応用まで解説します。

DennyDenny
読了まで約7分
Chalkboard feature illustration for “論理ゲート真理値表:必携リファレンスガイド”

**要約:**真理値表は、考えられるすべての入力の組み合わせと、論理ゲートが生成する決定論的な出力を列挙します。このリファレンスでは、7 種類の標準ゲート——AND、OR、NOT、NAND、NOR、XOR、XNOR——を、ブール式と表で扱い、4 個の NAND ゲートで XOR の動作を再現する演習例も示します。

真理値表は、論理ゲートの決定版仕様です。考えられるすべての入力状況と、ゲートが生じさせる一つの決定論的な出力を列挙します。真理値表の読み書きはデジタル設計の基礎技能であり、同じ表記は後に カルノー図、積和形の導出、回路検証で登場します。

基本ゲート:計算のプリミティブ

基礎となるゲート——AND、OR、NOT——は、デジタルのパレットにおける原色です。どのように複雑な論理機能でも、理論上はこの三つの組み合わせで描けます。

NOT ゲート(インバータ)

NOT ゲートは最も単純なゲートです。入力も出力も一つだけです。その役目は入力信号を反転することです。1 を与えれば 0 を返し、0 を与えれば 1 を返します。論理における対立そのものです。

ブール式: Y=A‾Y = \overline{A}

入力(A)出力(Y)
01
10

AND ゲート

AND ゲートは条件のゲートです。すべての入力が 1 のときだけ、1 を出力します。厳格な入場検査所と考えてください。入場に身分証とチケットの両方が必要なら、ID = 1 AND Ticket = 1 が必要です。どちらか一つでも欠ければ、出力は 0 になります。

ブール式: Y=A⋅BY = A \cdot B

入力(A)入力(B)出力(Y)
000
010
100
111

OR ゲート

OR ゲートは選択肢のゲートです。入力のいずれかが 1 なら 1 を出力します。AND ゲートより寛容な対になる存在です。会場へチケットか招待状のどちらかで入れるなら、入場するにはその一方が真(= 1)であれば足ります。

ブール式: Y=A+BY = A + B

入力(A)入力(B)出力(Y)
000
011
101
111

万能ゲートの意外な力

実は、あらゆるデジタル回路を作るのに AND、OR、NOT は必要ありません。すべてのブール関数は、単一種類のゲートだけで構成できます。この性質を万能性と呼び、それを持つ二つのゲートが NAND と NOR です。

なぜ重要なのでしょうか。製造では一貫性が何より大切です。複数の異なる種類を作るより、一種類のゲート(NAND など)を作るために何百万個ものトランジスタを製造する方が、はるかに効率的で費用対効果に優れます。これがシリコンチップの経済性を支える秘密です。

NAND ゲート(NOT-AND)

NAND ゲートは、AND ゲートの後に NOT ゲートを置いたものです。AND ゲートと正反対の出力を生成します。すべての入力が 1 のときだけ、0 を出力します。

ブール式: Y=A⋅B‾Y = \overline{A \cdot B}

入力(A)入力(B)出力(Y)
001
011
101
110

NOR ゲート(NOT-OR)

同様に、NOR ゲートは OR ゲートの後に NOT ゲートを置いたものです。すべての入力が 0 のときだけ、1 を出力します。

ブール式: Y=A+B‾Y = \overline{A + B}

入力(A)入力(B)出力(Y)
001
010
100
110

万能性を証明するには、NAND ゲートだけを使って三つの基本ゲートを構成できます。

  • **NOT ゲート:**NAND ゲートの二つの入力を結びます。入力 A は両方の入力で A となるため、出力は A⋅A‾=A‾\overline{A \cdot A} = \overline{A} です。
  • **AND ゲート:**NAND ゲートの出力を、NOT ゲートとして構成した NAND ゲートに通します。出力は A⋅B‾‾=A⋅B\overline{\overline{A \cdot B}} = A \cdot B です。
  • **OR ゲート:**二つの入力 A と B を反転し(NAND を NOT として使用)、三つ目の NAND ゲートに入力します。ド・モルガンの法則により、出力は A‾⋅B‾‾=A+B\overline{\overline{A} \cdot \overline{B}} = A + B です。

排他的ゲート:差異検出器

これらのゲートは、入力が同じか異なるかに基づく特別な論理を扱います。

XOR ゲート(排他的 OR)

XOR ゲートは「どちらか一方、ただし両方ではない」ゲートです。入力が異なるときだけ 1 を出力します。この性質は算術や誤り検査で非常に役立ちます。

ブール式: Y=A⊕B=A‾B+AB‾Y = A \oplus B = \overline{A}B + A\overline{B}

入力(A)入力(B)出力(Y)
000
011
101
110

XNOR ゲート(排他的 NOR)

XNOR ゲートは XOR の論理反転です。等価性検出器として働き、入力が同じときだけ 1 を出力します。

ブール式: Y=A⊕B‾=AB+A‾B‾Y = \overline{A \oplus B} = AB + \overline{A}\overline{B}

入力(A)入力(B)出力(Y)
001
010
100
111

digisim.io でのシミュレーション

回路を組むと、真理値表は具体的なものになります。NAND ゲートの万能性を示すため、四つの NAND ゲートから XOR ゲート を構成します。

  1. **ワークスペースを開く:**digisim.io シミュレータへ移動します。空のキャンバスが表示されます。
  2. コンポーネントを配置する:
  • 二つの 入力スイッチをキャンバスにドラッグします。ラベルは ‘A’ と ‘B’ にします。
  • 四つの 2 入力 NAND ゲートをキャンバスにドラッグします。
  • 一つの 出力 LEDをキャンバスにドラッグします。ラベルは ‘Y’ にします。
  1. 回路を配線する:
  • 入力 A を NAND ゲート #1 の第 1 入力と NAND ゲート #2 の第 1 入力へ接続します。
  • 入力 B を NAND ゲート #1 の第 2 入力と NAND ゲート #3 の第 1 入力へ接続します。
  • NAND ゲート #1 の出力を、NAND ゲート #2 と NAND ゲート #3 の両方の第 2 入力へ接続します。
  • NAND ゲート #2 の出力を NAND ゲート #4 の第 1 入力へ接続します。
  • NAND ゲート #3 の出力を NAND ゲート #4 の第 2 入力へ接続します。
  • 最後に、NAND ゲート #4 の出力を出力 LED ‘Y’ へ接続します。
  1. **真理値表を試験する:**入力スイッチ A と B を切り替え、LED を観察します。
  • A=0, B=0:LED は OFF(0)です。
  • A=0, B=1:LED は ON(1)です。
  • A=1, B=0:LED は ON(1)です。
  • A=1, B=1:LED は OFF(0)です。

これで、NAND ゲートだけを使って XOR ゲートの真理値表を実験的に検証しました。万能性の原理を、実地で対話的に証明したのです。

現実世界での使用例

このような抽象的なゲートは、毎日使う機器の内部で働く主力です。

  1. **RAM のパリティ検査における XOR:**コンピュータのメモリ(DRAM)は完全ではなく、放射線や電気ノイズによりビットがときどき反転することがあります。これを検出するため、多くのシステムはパリティビットを使います。データ 8 ビットごとに 9 ビット目を格納します。このビットは 8 個のデータビットを XOR でまとめて計算します。1 のビット数が奇数なら、XOR の結果(パリティビット)は 1 です。1 の数が偶数なら 0 です。データを読み戻すときに、この計算をもう一度行います。新しい結果が格納済みパリティビットと一致しなければ、システムはエラーが起きたと判断します。
  2. **CPU の算術論理演算装置(ALU)における AND:**ALU は CPU の数学的な頭脳です。プログラミング言語でビット単位の AND 演算を行うと、CPU はそのビットを ALU 内の AND ゲート群へ直接ルーティングします。これはバイト内の特定のビットを取り出す「マスキング」という手法の基礎でもあります。たとえばバイト D の第 4 ビットがセットされているかを調べるため、プログラマは D AND 00001000 を計算することがあります。結果がゼロでなければ、そのビットはセットされています。この単純な検査は毎秒何十億回も実行され、AND ゲートの真理値表の上に直接構築されています。

真理値表は暗記用のリファレンス以上のものです。設計ツールであり、デバッグの助けであり、デジタル世界を構成する要素の決定版仕様です。

デジタル論理 101 に進んでこれらのゲートを自分で配線するか、ブール代数の基礎に進んで表の背後にある式を操作してみてください。

アイデアを実際に動く回路にしましょう。