論理回路¶
論理回路の問題は「ゲートの種類」と「ひっかけパターン」を抑えれば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段確認する。
論理式の簡略化(カルノー図)¶
手順¶
- 変数の数に応じてカルノー図を描く(2変数:2×2、3変数:2×4、4変数:4×4)
- 真理値表の出力1の箇所に「1」を記入する
- 隣接する1をグループにまとめる
- グループを論理式に変換して加算する(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
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。「通り数と最大値は別」と意識する。
頻出論点と落とし穴¶
-
NAND/NORだけでAND・OR・NOTを作れる(完全集合)
- NAND1つでNOT: 入力を短絡(A・A = A → -(A・A) = Ā)
- NANDの組み合わせでAND・ORを構成可能
- 試験では「NAND単体で任意の論理回路を実現できる」が問われる
-
半加算器と全加算器
- 半加算器: 2ビットを加算。桁上がりあり。S = A⊕B、C = A・B
- 全加算器: 前桁の桁上がりも含めて加算。半加算器2個で構成
- ひっかかり: 全加算器は「3入力(A・B・Cin)、2出力(S・Cout)」
-
デコーダ vs エンコーダ
- デコーダ: n本の入力 → 2^n 本の出力(1本だけ1になる)
- エンコーダ: 2^n 本の入力 → n本の出力(デコーダの逆)
- ひっかかり: デコーダの出力が「1本だけ1」であることを忘れる
-
クロックエッジの種類
- 立ち上がりエッジトリガ: 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 | バージョニング基準