論理回路(logic circuit)

0と1の入力に対し、決まった規則で0か1を返す回路。AND・OR・NOTを組み合わせて作る。

もう少し詳しい説明

論理回路は、0と1の入力に対して、決まった規則で0か1を返す回路です。

コンピュータの中で扱えるのは、電気が流れているか(1)いないか(0)の2つだけです。そのうえで足し算や比較を行うために、0と1の組合せから0と1を作る部品を並べます。その部品を論理素子、組み合わせたものを論理回路と呼びます。

基本の3つ

まずはこの3つです。左から入力が入り、右へ出力が出ます。

入力の組合せごとに出力を並べた表を真理値表といい、回路の動きはこれで確かめます。

入力 A入力 B出力(AND)出力(OR)
0000
0101
1001
1111

左の2列(AとB)が入れる値、右の2列がそれぞれの素子から出てくる値です。ANDとORは別々の素子なので、同じ入力を与えたときにそれぞれ何を返すかを並べて見ています。

NOTは入力が1つだけなので、表も2行で済みます。

入力 A出力(NOT)
01
10

ORは「どちらか一方だけ」ではありません。両方1のときも1です。ここを取り違えると、次のXORと混ざります。

よく出る残りの3つ

名前が、そのまま何の略かを表しています。

名前何の略か動き
XOR(排他的論理和)eXclusive OR(排他的なOR)異なるときだけ1
NAND(否定論理積)NOT + ANDANDの出力を反転(両方1のときだけ0)
NOR(否定論理和)NOT + ORORの出力を反転(両方0のときだけ1)

頭にNが付いたら、NOTが付いているということです。NANDとNORは、それぞれANDとORの答えを出してから、最後にひっくり返すだけです。

XORの「eXclusive(排他的な)」は、「両方とも」を締め出すという意味です。ORから「両方1」の場合だけを除いたもの、と考えると形が見えます。

4つを並べると、こうなります。

入力 A入力 BANDORXORNANDNOR
0000011
0101110
1001110
1111000

NANDの列はANDの列の逆、NORの列はORの列の逆になっています。縦に見比べてみてください。

記号の形

回路図では、素子はMIL記号という決まった形で書かれます。

AND論理積OR論理和NOT否定XOR排他的論理和NAND否定論理積NOR否定論理和
左から線が入り、右へ出ていきます。ANDは右が半円、ORは右がとがった形。出口に小さな丸が付いているものは、その答えを反転します(NOT・NAND・NOR)。XORはORの左にもう1本線が増えた形です。形の違いはこれだけなので、丸の有無を最初に見てください。

形の違いは2つだけです。

つまり、NANDはANDに丸を足しただけ、NORはORに丸を足しただけです。NOTは三角形に丸。XORはORの左側に、もう1本線が増えています。

問題の図を見たら、まず出口の丸があるかどうかを見てください。それだけでN付きかどうかが決まります。

→ 入力を切り替えて、出力がどう変わるかを試す

足し算を作ってみる

論理回路が何の役に立つのかは、足し算を作ってみると分かります。

2進数で 1 + 1 は 10 です。答えが2桁になります。

入力A = 1B = 1答え「10」桁上げ C = 1(AND)和 S = 0(XOR)
2進数では 1+1 は「10」です。下の桁(和)は「どちらか一方だけが1のとき1」なのでXOR、上の桁(桁上げ)は「両方1のとき1」なのでANDで作れます。この2つを組み合わせたものが半加算器です。

この2つを並べて、AとBを両方につなぐと、1桁の足し算をする回路ができます。これを半加算器と呼びます。

A = 1B = 1XORANDS = 0和C = 1桁上げ
1+1 を計算しているところです。AとBが両方1なので、XORの出力(和S)は0、ANDの出力(桁上げC)は1。2進数の「10」ができています。線が太く色づいているところが、値が1になっている線です。

AとBから出た線が、XORとANDの両方につながっているところに注目してください。同じ入力を2つの素子に配って、別々の答えを出させています。

入れる値を変えると、出てくる答えも変わります。

A = 1B = 0XORANDS = 1和C = 0桁上げ
同じ回路で 1+0 を計算したところです。XORは「異なるとき1」なので和Sは1、ANDは「両方1のときだけ1」なので桁上げCは0。答えは「01」、つまり1になります。回路は同じで、入れる値だけが変わっています。

回路そのものは同じで、入力だけが違います。1+0 なので、和は1、桁上げは0。答えは「01」、つまり1です。

全加算器:下からの繰り上がりも受け取る

半加算器には、下の桁から上がってきた繰り上がりを受け取る口がありません。2桁以上の足し算では、これがないと困ります。

そこで入力を3つ(A、B、下からの桁上げ Cin)にしたものが全加算器です。

A = 1B = 1Cin = 1XORANDXORANDORS = 1和Cout = 1桁上げ
下の桁から上がってきた桁上げ(Cin)も受け取れるようにしたものが全加算器です。半加算器2つ分をORでまとめた形になっています。図は 1+1+1 を計算しているところで、答えは「11」、つまり3です。

半加算器2つ分のはたらきを、最後にORでまとめた形になっています。これを桁の数だけ横に並べれば、何桁の足し算でもできます。

半は「半分」ではなく「桁上げを受け取らない」という意味だと押さえておくと、2つを取り違えません。

ド・モルガンの法則

式を整理するときに使う規則です。応用情報でよく出ます。

言葉にすると、**「全体の否定は、ばらして否定して、ANDとORを入れ替える」**です。

回路にすると、形がまったく違うのに答えが同じになる、ということが見えます。

A = 1B = 0ANDNOTY = 1
NOT(A AND B) の回路です。先にANDでまとめてから、最後にNOTで反転します。AとBが 1 と 0 なので、ANDの出力は0、それを反転して答えは1になります。
A = 1B = 0NOTNOTORY = 1
NOT(A) OR NOT(B) の回路です。こちらは先にそれぞれを反転してから、ORでまとめます。形はまったく違うのに、同じ入力を与えると上の回路と必ず同じ答えになります。これがド・モルガンの法則です。

上は「まとめてから反転」、下は「反転してからまとめる」。どの入力を与えても、2つの答えは必ず一致します。4通りすべてを試してみると確かめられます。

日本語で言い換えてみるのも手です。「両方そろってはいない」=「どちらかが欠けている」、「どちらも無い」=「これも無く、あれも無い」。当たり前のことを言っているのが分かります。

覚え方:真理値表を4行書く

素子の名前で迷ったら、(0,0) (0,1) (1,0) (1,1) の4行を紙に書くのがいちばん確実です。

1になる行がどこにあるかで3つが分かれます。ここにNが付けば、全部ひっくり返すだけです。

試験ではこう出る

科目A(旧・午前)のハードウェア分野で出ます。多いのは、真理値表や動作の説明を示して素子名を答えさせる問題と、MIL記号の回路図を読んで出力を求める問題です。半加算器・全加算器の構成や、ド・モルガンの法則を使った式の変形も問われます。科目B(旧・午後)でも、条件分岐の組合せとして論理演算が出てきます。

回路図を読む問題は、入力の組合せを1行ずつ書き出して、素子ごとに答えを埋めていくのが確実です。途中の線に0や1を書き込んでいけば、頭の中で追う必要がなくなります。もう1つ、ORは「両方1」でも1という点は毎回狙われるので、XORと並べて確認しておいてください。

関連する用語

真理値表
入力の組合せごとに出力を並べた表。論理回路の動きは、これで確かめる
排他的論理和(XOR)
2つの入力が異なるときだけ1になる演算。足し算の下の桁を作るのに使う
半加算器・全加算器
1桁の足し算を行う回路。半加算器は下からの桁上げを受け取らない
ド・モルガンの法則
ANDとORを、否定を使って言い換える規則。式の整理でよく使う
2進数
0と1だけで数を表す方法。論理回路が扱えるのはこの形

ミニクイズ

2つの入力A、Bに対して、AとBが異なる値のときだけ出力が1になる論理素子はどれか。

正解は 1番:排他的論理和(XOR)

排他的論理和(XOR)は、2つの入力が異なるときだけ1になります。つまり(0,1)と(1,0)で1、(0,0)と(1,1)では0です。論理積(AND)は両方が1のときだけ1になるので、異なるときは0です。論理和(OR)はどちらか一方でも1なら1になるため、両方1のときも1になり、条件に合いません。否定論理積(NAND)はANDの出力を反転したもので、両方1のときだけ0、それ以外はすべて1になります。「異なるときだけ」という言い方が出てきたらXOR、と結び付けておくと迷いません。

間違えた用語の復習リストを見る →

最終更新:2026-09-20