論理演算と真理値表をやさしく図解 — AND・OR・NOT・XOR・ド・モルガン

公開: 2026年7月 カテゴリ: 基礎理論

「ANDとORはどっちが"両方"だっけ?」「XORって何に使うの?」——論理演算は、0(偽)と1(真)だけの世界のルールです。コンピュータの計算・判断はすべてこの組み合わせでできています。この記事では、基本のゲートと真理値表、ド・モルガンの法則までを図解します。入力をクリックして動かすなら 論理回路シミュレータ もどうぞ。

論理演算とは — 0と1で「判断」を作る

論理演算は、入力を0(偽・False)1(真・True)のどちらかとして扱い、決まったルールで出力を1つ決める計算です。「気温が高いかつ湿度が高いなら不快」のような条件判断は、そのままAND・ORで表せます。各演算の入出力を一覧にしたのが真理値表です。

基本の3つ:AND・OR・NOT

入力AND(論理積)
両方1で1
OR(論理和)
片方でも1で1
ABA・BA+B
0000
0101
1001
1111

NOT(否定)は入力を反転するだけ:0→1、1→0。「Aの否定」を ¬A と書きます。この3つ(AND・OR・NOT)があれば、原理的にどんな論理も組み立てられます。

論理ゲートの記号(MIL記号) AND OR NOT
図1: 論理ゲートの記号。NOTの先端の小さな丸(○)が「否定」を表す

XOR(排他的論理和)— 「違うときだけ1」

XORは、2つの入力が異なるときだけ1になります(同じなら0)。これは「2進数の足し算で、繰り上がりを除いた桁の値」そのもの。ビット反転や、パリティ(誤り検出)、暗号処理などで重要な役割を果たします。

ABXOR(異なると1)NAND(ANDの否定)NOR(ORの否定)
00011
01110
10110
11000

NAND・NORは、それぞれAND・ORの出力を反転したものです。実はNAND(またはNOR)だけを組み合わせれば、あらゆる論理回路を作れます(完全性)。だから実際のICではNANDが多用されます。

🖥️ クリックして動かすなら:論理回路シミュレータで、AND・OR・NOT・XOR・NAND・NOR・XNORの7ゲートを、入力0/1をクリックしながら出力と真理値表の連動を確かめられます。半加算器(1桁の2進数の足し算回路)がXORとANDでどう組まれるかも見られます。

ド・モルガンの法則 — 否定でAND⇔ORが入れ替わる

論理式を変形するときの必須ルールです。「かたまり全体の否定」は、中を否定してAND⇔ORを入れ替えたものに等しい、という法則です。

元の式ド・モルガンで変形
 ̄(A・B)(AとBのANDの否定)Ā + B̄(Aの否定 OR Bの否定)
 ̄(A+B)(AとBのORの否定)Ā・B̄(Aの否定 AND Bの否定)

言葉にすると「『AもBも真、ではない』=『Aが偽 または Bが偽』」。条件式の書き換えや、回路をNANDだけ・NORだけに置き換える簡略化で活躍します。プログラムの if (!(a && b))if (!a || !b) に直すのも、まさにこの法則です。

基本情報技術者試験ではこう出る

「真理値表からゲートを特定する」「与えられた論理式を簡単にする」「ド・モルガンの法則で変形する」「半加算器・全加算器の構成」が定番です。とくにAND=両方1、OR=片方1、XOR=違うと1の3つと、ド・モルガンの法則は確実に押さえましょう。ベン図で考えると、集合演算(積集合・和集合・補集合)とも対応していることが見えてきます。ビット演算は2進数と基数変換の理解とも直結します。

よくある質問

Q. 論理演算と集合演算(ベン図)の関係は?
A. 対応しています。AND=積集合(∩・重なり)、OR=和集合(∪・全体)、NOT=補集合(外側)。ベン図で塗り分けると、真理値表と同じ結果になります。両方を行き来できると理解が深まります。

Q. XNOR(一致)とは?
A. XORの否定で、2つの入力が同じときだけ1になります(一致回路)。0と0、1と1で1、異なると0。「等しいか」を判定する場面で使われます。

Q. ビット演算のANDやORはどう使う?
A. プログラムでは、特定のビットだけを取り出す(マスク:x AND 0x0F)、ビットを立てる(x OR フラグ)、反転する(x XOR マスク)などに使います。サブネットマスクの計算(IP AND マスク)も論理積の応用です(サブネットマスクの計算参照)。

まとめ

論理演算は、AND=両方1、OR=片方1、NOT=反転、XOR=違うと1——この4つが土台です。そこにNAND/NOR(否定版)ド・モルガンの法則(否定でAND⇔OR)を加えれば、試験の論理回路問題はほぼ攻略できます。真理値表を書く習慣をつけて、シミュレータで動きを確かめておきましょう。

関連ページ: 論理回路シミュレータ2進数と基数変換記事一覧