論理回路とは(全体像)
論理回路は、「正しい/正しくない」を電気のON・OFFで判断するしくみのこと。コンピュータの計算は、つきつめると0と1(OFFとON)の組み合わせだけでできていて、その土台にあるのがこの論理回路だ。
イメージは、たくさんの小さなスイッチがつながった配線。あるスイッチに電気が来たら次のスイッチが入る……というつながりで、足し算や記憶といった仕事をこなしている。
押さえるのは、論理回路が2つのグループに分かれること。
- 組合せ回路 … 今の入力だけで出力が決まる回路。過去を覚えない。(例:足し算をする加算器)
- 順序回路 … 過去の状態も使って出力が決まる回路。記憶を持つ。(例:フリップフロップ)
「覚えない=組合せ/覚える=順序」——この対比がすべての出発点になる。
詳しく:この表だけ覚えれば戦える
ここが記事の心臓部。論理回路の中身は、次の表にほぼつまっている。
まずは部品の最小単位、基本ゲート7種。入力(0か1)を受け取って、決まったルールで出力(0か1)を返す小さな判定装置だ。
基本ゲート7種
| ゲート | はたらき(言葉で言うと) |
|---|---|
| AND | 入力が両方とも1のときだけ1 |
| OR | 入力のどちらかが1なら1 |
| NOT | 入力を反転(1→0、0→1) |
| NAND | ANDの結果を反転 |
| NOR | ORの結果を反転 |
| XOR | 入力が違うときだけ1(同じなら0) |
| XNOR | 入力が同じときだけ1 |
次に、このゲートを組んで作る組合せ回路の代表=加算器(足し算機)。
半加算器と全加算器の違い
| 半加算器 HA | 全加算器 FA | |
|---|---|---|
| 作り | XOR+AND | 半加算器2つ+OR |
| できること | 1ビットどうしの足し算 | 下の桁からの繰り上がりも受け取れる |
| 多ケタ計算 | できない | FAをn個つなげればnケタ計算 OK |
足し算には「和」と「繰り上がり(キャリー)」の2つの答えが要る。半加算器は、XORで和を、ANDで繰り上がりを作る。つまり、和はXOR・繰り上がりはAND、と覚えればいい。ただし半加算器は「下の桁からの繰り上がり」を受け取れないので、多ケタの足し算には全加算器が必要になる。
最後に、記憶を持つ順序回路の代表=フリップフロップ(FF)。
フリップフロップ(順序回路)
| 項目 | 内容 |
|---|---|
| 役わり | 1ビット(0か1)を記憶する部品 |
| 種類 | RS型・D型・T型・JK型 の4つ |
| 使い道 | レジスタやカウンタなど「覚える部品」の土台 |
そして、できあがった回路はブール代数(論理の計算ルール)やカルノー図(マス目で整理する図)を使うと、ゲートの数を減らしてシンプルにできる。試験では4変数のカルノー図がよく出る。
わかりやすく言い換えると
要するに、むずかしく考えず、こう覚えるとラク。
基本ゲートは「条件を判定する小さな関所」。ANDは「両方そろわないと通さない厳しい関所」、ORは「どちらか1つでも通す優しい関所」、NOTは「答えをひっくり返すあまのじゃく」。
加算器は「1ケタの足し算機」。半加算器は繰り上がりを“出す”だけ、全加算器は繰り上がりを“受け取れる”——だから連結して大きな足し算ができる。
フリップフロップは「1ビットの付箋(ふせん)」。次の入力が来るまで、今の0/1をぺたっと貼って覚えておくイメージだ。
試験のツボ
🔴 一番出る:半加算器と全加算器の違い
①半加算器 = XOR(和)+AND(繰り上がり)
②全加算器 = 半加算器2つ+OR。下の桁からの繰り上がりを受け取れる
③多ケタ計算は全加算器を連結して作る
🔴 次に出る:基本ゲートのはたらき
①AND=両方1で1/OR=どちらか1で1/NOT=反転
②XOR=違えば1/XNOR=同じなら1
🟡 押さえると安定:組合せ回路と順序回路の区別
①組合せ回路=今の入力だけで決まる(覚えない)
②順序回路=過去の状態も使う(覚える)=フリップフロップ
よくある間違い
①「半加算器でも多ケタの足し算ができる」→ ✗ 半加算器は下の桁からの繰り上がりを受け取れない。多ケタには全加算器が必要。
②「フリップフロップは組合せ回路」→ ✗ フリップフロップは状態を記憶する順序回路。組合せ回路は覚えない。
③「XORは入力が同じとき1になる」→ ✗ XORは入力が違うときに1。同じときに1なのはXNOR。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(基本ゲートのはたらき)
論理ゲートに関する次の記述のうち、正しいものはどれか。
- XORゲートは、2つの入力が互いに異なるときに1を出力するゲートである
- ANDゲートは、2つの入力のどちらか一方が1であれば1を出力するゲートである
- ORゲートは、2つの入力が両方とも1のときだけ1を出力するゲートである
- NOTゲートは、2つの入力が同じ値のときだけ1を出力するゲートである
解答は 1 だぜ。
XORは「違えば1」のゲート。2つの入力が異なるとき(0と1、1と0)に1を出し、同じとき(0と0、1と1)は0になる。足し算の「和」を作る相棒だから、半加算器とセットで覚えておけよ。
選択肢2はOR、選択肢3はANDの説明が入れ替わっているから誤りだ。選択肢4のNOTは入力1つを反転するゲートで、「2つの入力」という時点で誤りだぜ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | XOR=入力が違うとき1で正しい |
| 2 | ✗ | これはORの説明(ANDは両方1) |
| 3 | ✗ | これはANDの説明(ORはどちらか1) |
| 4 | ✗ | NOTは入力1つを反転するゲート |
オリジナル問題2(半加算器と全加算器)
半加算器と全加算器に関する次の記述のうち、正しいものはどれか。
- 半加算器は2つの全加算器とORゲートを組み合わせて作る回路のことである
- 全加算器は下の桁からの繰り上がりも受け取れ、連結すれば多ケタの加算ができる
- 半加算器も全加算器も、下の桁からの繰り上がりは受け取れない点で共通している
- 全加算器は1ビットを記憶する順序回路で、レジスタやカウンタの土台にあたる
解答は 2 だぜ。
全加算器は半加算器を2つとORゲートで組み、下の桁からの繰り上がりも受け取れるのが最大の特徴だ。だからn個つなげればnケタの足し算ができる。
選択肢1は「半加算器」と「全加算器」が逆。全加算器が半加算器2つ+ORで作られる。選択肢3は誤りで、繰り上がりを受け取れるのが全加算器だ。選択肢4は記憶を持つフリップフロップ(順序回路)の説明で、加算器は組合せ回路だぜ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 全加算器が半加算器2つ+ORで作られる(逆) |
| 2 | ✓ | 繰り上がりを受け取れ多ケタ加算が可能 |
| 3 | ✗ | 全加算器は繰り上がりを受け取れる |
| 4 | ✗ | 記憶を持つのはフリップフロップ |
オリジナル問題3(順序回路とフリップフロップ)
順序回路とフリップフロップに関する次の記述のうち、正しいものはどれか。
- 順序回路は今の入力だけで出力が決まり、過去の状態をまったく使わない回路である
- フリップフロップは複数のビットをまとめて計算する組合せ回路の代表部品である
- 半加算器や全加算器は過去の状態を記憶するので、順序回路に分類される回路だ
- フリップフロップは1ビットを記憶する順序回路で、レジスタなどの土台になる
解答は 4 だぜ。
フリップフロップは1ビット(0か1)を記憶する部品で、過去の状態を使う順序回路の代表だ。これを並べてレジスタやカウンタが作られる。RS・D・T・JKの4種類があると覚えておけよ。
選択肢1は「過去を使わない」ので組合せ回路の説明。選択肢2はフリップフロップを組合せ回路としている点が誤りだ。選択肢3は加算器を順序回路としているが、加算器は覚えない組合せ回路だぜ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 過去を使わないのは組合せ回路 |
| 2 | ✗ | フリップフロップは記憶を持つ順序回路 |
| 3 | ✗ | 加算器は覚えない組合せ回路 |
| 4 | ✓ | 1ビットを記憶しレジスタ等の土台になる |
まとめ
押さえどころ
- 🔴 基本ゲート = AND(両方1で1)・OR(どちらか1で1)・NOT(反転)・XOR(違えば1)が中心。
- 🔴 加算器 = 半加算器(XOR+AND)と全加算器(半加算器2つ+OR)。全加算器は繰り上がりを受け取れ、連結で多ケタ計算ができる。
- 🟡 組合せ回路と順序回路 = 覚えないのが組合せ(加算器)、覚えるのが順序(フリップフロップ)。
次に学ぶ
- 集合・述語論理 ── ANDやORの「正しい/正しくない」を数式で扱う考え方。論理回路のゲートと根っこは同じで、セットで理解すると一気に見通しがよくなる。
- CISC/RISC ── 論理回路を組み上げて作るCPUの設計思想の違い。回路の先にある「コンピュータの頭脳」へ話がつながる。
執筆: SikakuQuest編集部