基本情報技術者(FE)対策

論理回路

回路問題は真理値表で必ず解ける

論理回路の問題は、図を見て「何の回路か」を当てにいくと外します。入力の組合せをすべて表に書き出して、出力を機械的に埋めるのが確実な型です。入力が 2 本なら 4 通り、3 本でも 8 通りしかないので、書き切るほうが速いのです。

前回の 2 進数と同じで、ここでの 1 と 0 は真と偽を表します。

基本の 5 つ

覚えるべき素子は 5 つです。

素子出力が 1 になる条件記号での書き方
AND入力がすべて 1A・B
OR入力のどれかが 1A + B
NOT入力が 0Aの上に線
XOR入力の 1 の個数が奇数A(+)B
NANDAND の出力を反転したものANDに反転の丸

XOR は「2 つの入力が違うときだけ 1」と読み替えると速く解けます。1 と 0 なら 1、1 と 1 なら 0 です。

NAND は 1 種類だけで NOT も AND も OR も作れるという性質があり、実際の集積回路で多用されます。両方の入力に同じ信号を入れると NOT になります。A が 1 なら AND の結果は 1、それを反転して 0 になるからです。

ド・モルガンの法則は数字で確かめる

AND と OR は反転を通すと入れ替わります。

  • AND を反転したものは、それぞれを反転した OR と等しい
  • OR を反転したものは、それぞれを反転した AND と等しい

A が 1、B が 0 で確かめます。A AND B は 0 なので、反転すると 1 です。一方、A の反転は 0、B の反転は 1 で、その OR は 1 です。両辺とも 1 で一致しました。選択肢に形の違う論理式が並ぶ問題では、この法則で片方を変形して同じ形にするか、値を 1 組入れて食い違う選択肢を消す方法が使えます。

半加算器と全加算器

1 桁の 2 進数どうしの足し算をする回路が半加算器です。出力は和 S と桁上げ C の 2 本あります。

  • S は A と B の XOR
  • C は A と B の AND

A が 1、B が 1 のときを通してみます。XOR は入力が同じなので S は 0、AND は両方 1 なので C は 1 です。合わせて読むと 2 進数の 10、つまり 10 進の 2 です。1 + 1 = 2 と合っています。

半加算器は下の桁からの桁上げを受け取れません。それを受け取れるようにしたのが全加算器で、半加算器 2 個と OR 1 個で作れます。多ビットの加算器は全加算器を桁の数だけ並べて、桁上げを次の桁へ渡していく形になります。

解く手順

  1. 入力の組合せをすべて縦に並べた表を書く
  2. 図の左から順に、途中の信号にも列を作って埋める
  3. 最後の出力列だけを見て、選択肢の真理値表と突き合わせる

途中の信号に列を作るのが要点です。頭の中で合成しようとすると、XOR と OR の取り違えが起きます。

生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア
編集 LuaGate編集部