コンテンツにスキップ

🔌 論理回路

論理回路の問題は「ゲートの種類」と「ひっかけパターン」を抑えれば8割取れる。NANDとXORの出力条件を正確に言えるか確認してから解け。

⚡ 5秒で思い出す

「NAND = 両方1のときだけ0、XOR = 入力が同じとき0」


🧠 基本ゲートと真理値表

ゲート一覧

ゲート 記号 出力条件 覚え方
AND A・B 両方1のとき1 積(直列スイッチ)
OR A+B どちらか1のとき1 和(並列スイッチ)
NOT Ā 入力の反転 否定
NAND -(A・B) 両方1のとき0(それ以外は1) ANDの反転
NOR -(A+B) どちらか1のとき0(両方0のとき1) ORの反転
XOR A⊕B 入力が異なるとき1 排他的論理和

ANDの真理値表

A B A・B
0 0 0
0 1 0
1 0 0
1 1 1

NANDの真理値表

A B -(A・B)
0 0 1
0 1 1
1 0 1
1 1 0

XORの真理値表

A B A⊕B
0 0 0
0 1 1
1 0 1
1 1 0

ひっかけ No.1: NANDの出力条件を誤る

誤パターン: 「NANDは両方0のとき0」→ 完全に逆。
NANDが0になるのは「両方1のときだけ」。それ以外の3パターンはすべて1を出力する。
NANDは「AND → NOT」の順で考えると確実。

ひっかけ No.2: XORで両方1のとき1と答える

誤パターン: 「XORはORANの強化版だから両方1でも1」→ 誤り。
XORは「排他的(eXclusive)」で、同じ入力(00・11)は0。異なるとき(01・10)だけ1。


📊 ブール代数の基本法則

基本法則一覧

  • 交換則: A・B = B・A、A+B = B+A
  • 結合則: (A・B)・C = A・(B・C)、(A+B)+C = A+(B+C)
  • 分配則: A・(B+C) = A・B + A・C
  • 吸収則: A・(A+B) = A、A+(A・B) = A
  • 補元則: A・Ā = 0、A+Ā = 1

ド・モルガンの定理(最重要)

公式 1(NANDの等価): -(A・B) = Ā + B̄

公式 2(NORの等価): -(A+B) = Ā・B̄

ド・モルガンの覚え方

「バーを分配するときは AND ↔ OR が必ず入れ替わる」。

  • バーを外す(NANDを展開)→ AND が OR に変わる: -(A・B) = Ā + B̄
  • バーを外す(NORを展開)→ OR が AND に変わる: -(A+B) = Ā ・ B̄

「分配 = 記号反転」をセットで覚える。

ひっかけ No.3: ド・モルガンでAND/ORを変えない

誤パターン: -(A・B) = Ā・B̄(ANDのままバーを外す)→ 誤り。
バーを各変数に分配するとき、AND ↔ OR の変換を忘れると必ず失点する。
試験中に「ド・モルガン使った? → AND/OR変えた?」と2段確認する。


🧠 論理式の簡略化(カルノー図)

手順

  1. 変数の数に応じてカルノー図を描く(2変数:2×2、3変数:2×4、4変数:4×4)
  2. 真理値表の出力1の箇所に「1」を記入する
  3. 隣接する1をグループにまとめる
  4. グループを論理式に変換して加算する(OR で結合)

グループ化ルール

ルール 内容
サイズ 2^n 個(1・2・4・8個)でまとめる
形状 長方形(正方形含む)のみ。L字は不可
折り返し 表の端同士は隣接している(循環)
優先順位 各グループは最大サイズで作る

ひっかけ No.4: グループ数の最小化を優先する

誤パターン: 「グループ数を少なくしよう」→ 目標はグループ数の最小化ではない。
正しい原則: 各グループを最大サイズにすることで論理式が最も簡単になる。
小さいグループを作るより、大きなグループに1を吸収させる。

カルノー図の実用判断

電験3種では4変数(4×4)が最大。3変数(2×4)が頻出。
グループ化の前に、まず「端の折り返し」がないか確認する習慣をつける。


📊 組み合わせ回路 vs 順序回路

項目 組み合わせ回路 順序回路
記憶素子 なし あり(フリップフロップ)
出力の依存 現在の入力のみ 入力+過去の状態
設計の複雑さ 低(入力→出力が一意) 高(状態遷移を管理)
代表例 加算器・デコーダ・マルチプレクサ カウンタ・レジスタ・シフトレジスタ

「記憶があるか」で判断する

出力が「今の入力だけ」で決まる → 組み合わせ回路。
出力に「前の状態」が影響する → 順序回路(フリップフロップ内蔵)。


🧠 フリップフロップ(SR型・D型・JK型)

SR フリップフロップ

S R Q(次状態) 状態
0 0 Q(変化なし) 保持
0 1 0 リセット
1 0 1 セット
1 1 不定 禁止

D フリップフロップ

  • クロック立ち上がりエッジで D 入力を Q に転送する
  • 公式: Q(次) = D
  • 最も単純な構造。レジスタに広く使われる

JK フリップフロップ

J K Q(次状態) 状態
0 0 Q(変化なし) 保持
0 1 0 リセット
1 0 1 セット
1 1 Q̄(反転) トグル

JK-FF は SR-FF の禁止状態を解消した改良版

SR-FF で S=R=1 は「禁止(出力不定)」だったが、JK-FF では J=K=1 のとき「トグル(反転)」として定義されている。
JK-FF が SR-FF より優れているのはこの1点。

ひっかけ No.5: SR-FF で S=R=1 を「特別な状態」と思う

誤パターン: SR-FF で S=R=1 は「強制セット」「リセット優先」など特定動作をする → 誤り。
出力が不定(回路によって0か1か決まらない)。試験では「禁止状態」と答える。


📊 2進数・16進数変換

変換ルール

変換方向 手順
2進数 → 10進数 各桁に 2^n を掛けて合算(右端が 2^0)
10進数 → 2進数 2で割り続け、余りを逆順に並べる
16進数 → 2進数 1桁を4ビットに展開(F=1111)
2進数 → 16進数 右から4ビットごとに区切って16進数に変換

変換例

10進数 13 → 2進数

13 ÷ 2 = 6 余り 1
 6 ÷ 2 = 3 余り 0
 3 ÷ 2 = 1 余り 1
 1 ÷ 2 = 0 余り 1
余りを逆順に読む → 1101(= 8+4+0+1 = 13で検証OK)

16進数 A3 → 2進数 - A = 1010、3 = 0011 → 1010 0011

よく出る2進数の桁数と最大値

ビット数 表現できる組み合わせ 最大値(符号なし)
4ビット 2^4 = 16通り 15(= 1111)
8ビット 2^8 = 256通り 255(= 1111 1111)
16ビット 2^16 = 65,536通り 65,535

ひっかけ No.6: n桁の最大値を 2^n と答える

誤パターン: 8ビットの最大値は 2^8 = 256 → 誤り。
n桁で表せる最大値は 2^n - 1(0から始まるため)。
8ビット: 0〜255(256通り)、最大値は 255。「通り数と最大値は別」と意識する。


🚨 頻出論点と落とし穴

  1. 🎯 NAND/NORだけでAND・OR・NOTを作れる(完全集合)

    • NAND1つでNOT: 入力を短絡(A・A = A → -(A・A) = Ā)
    • NANDの組み合わせでAND・ORを構成可能
    • 試験では「NAND単体で任意の論理回路を実現できる」が問われる
  2. 🎯 半加算器と全加算器

    • 半加算器: 2ビットを加算。桁上がりあり。S = A⊕B、C = A・B
    • 全加算器: 前桁の桁上がりも含めて加算。半加算器2個で構成
    • ひっかかり: 全加算器は「3入力(A・B・Cin)、2出力(S・Cout)」
  3. 🎯 デコーダ vs エンコーダ

    • デコーダ: n本の入力 → 2^n 本の出力(1本だけ1になる)
    • エンコーダ: 2^n 本の入力 → n本の出力(デコーダの逆)
    • ひっかかり: デコーダの出力が「1本だけ1」であることを忘れる
  4. 🎯 クロックエッジの種類

    • 立ち上がりエッジトリガ: 0→1 の瞬間に動作
    • 立ち下がりエッジトリガ: 1→0 の瞬間に動作
    • レベルトリガ(ラッチ): クロックが1(または0)の間中、入力を反映

🧠 正答者 vs 誤答者の視点差

観点 ❌ 誤答者 ✅ 正答者
NAND の出力 「両方0のとき0」「どちらか1のとき0」と誤記 ANDの結果を反転。両方1→0、それ以外→1 と確認する
XOR の出力 「両方1のとき1」と答える 同じ入力→0、異なる入力→1。11→0 を特に意識する
ド・モルガン AND/OR を変えずにバーだけ分配する バーを分配するたびに AND ↔ OR が反転することを確認
SR-FF の禁止状態 「優先度がある」など特定動作を仮定する S=R=1 は出力不定(禁止)と明記する
2進数の最大値 n ビット → 最大 2^n と答える n ビット → 最大 2^n - 1(最小が0のため)と計算する

🔗 関連テーマ


最終確認: 2026-04-14 | ステータス: v1.0 | バージョニング基準