【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】


2026/07/27

40年以上のゲームプログラミング経験をマンガで可視化。 今回は、電子スイッチで作られる論理ゲートを組み合わせた「論理回路」。 CPUやGPUは、この論理回路の集合体です。

プログラミングブログ記事一覧
[PR]
【マンガで感じる】論理回路 ~電子スイッチで作る回路~
[PR]
「論理回路」とは:電子スイッチで作る回路
「論理回路」の本質は「電子スイッチで作る回路」です。
トランジスタを用いた電子スイッチで作られる各種「論理ゲート」。 それらを組み合わせて作られる回路です。
CPUやGPU、メモリーの一部など、各種デジタル電子装置が論理回路で作られています。
「論理ゲート」の種類と代表例:AND/OR/XOR/NOT/NAND/NOR
論理ゲートには種類が複数あり、
代表例としては、この図のような、AND、OR、XOR、NOT、NAND、NORなどがあります。回路図ではこの形状で描きます。 それぞれ下が入力、上が出力です。 AND等の文字は回路図には入りません。
以下、真理値表、すなわち、2値(0と1)の入出力の対応表を利用して、順次解説します。
「ANDゲート」とは
入力A
入力B
AND出力
0
0
0
0
1
0
1
0
0
1
1
1
ゲーム開発に用いられる主要なプログラミング言語のビット演算子「&」が相当します。 マンガのメカ・アンドのお腹の記号もここから来ています。
「ORゲート」とは
入力A
入力B
OR出力
0
0
0
0
1
1
1
0
1
1
1
1
主要なプログラミング言語のビット演算子「|」が相当します。
「XORゲート」とは
入力A
入力B
XOR出力
0
0
0
0
1
1
1
0
1
1
1
0
主要なプログラミング言語のビット演算子「^」が相当します。 マンガのメカ・エックスオアのお腹の記号もここから来ています。
「NOTゲート」とは
入力
NOT出力
0
1
1
0
主要なプログラミング言語のビット演算子「~」が相当します。
「NANDゲート」とは
入力A
入力B
NAND出力
0
0
1
0
1
1
1
0
1
1
1
0
「NORゲート」とは
入力A
入力B
NOR出力
0
0
1
0
1
0
1
0
0
1
1
0
「論理ゲート」の仕組みを電子スイッチによる疑似回路で解説
論理ゲートのうち、ANDゲートとORゲート、およびNANDゲートを実現する、電子スイッチによる疑似回路を図示します。 実際にはトランジスタが使われており、より複雑ですが、正確性よりもわかりやすさ優先です。
プラス電源は乾電池のプラス、グラウンドが乾電池のマイナスに相当します。 入力が 1 のときに、矢印の先のスイッチが繋がります。

ANDゲートの疑似回路
ANDゲートは、入力の両方が 1 のとき、プラス電源と出力が繋がり、出力が 1 になります。
ORゲートの疑似回路
ORゲートは、入力の少なくともどちらか一方が 1 のとき、プラス電源と出力が繋がり、出力が 1 になります。
NANDゲートの疑似回路
NANDゲートは、プラス電源からの分岐点で、出力側には抵抗(ギザギザマーク)があり、グラウンド側はスイッチがあります。
入力の両方が 1 の場合はスイッチが繋がります。 するとプラス電源からの電気は、分岐点で抵抗のないグラウンド側へ流れ、出力側には流れず、出力が 0 になります。
どちらか一方でも 0 の場合は、グラウンド側が繋がっていないため、出力側に電気が流れて、出力が 1 になります。
論理ゲートを組み合わせた「論理回路」の具体例:半加算器とフリップフロップ
これら論理ゲートを組み合わせて、論理回路を作ります。
例として2つ解説します。 CPUなども、このような論理回路の集合でできています。
ANDゲートとXORゲートを組み合わせた半加算器で1ビット加算
マンガで作られた足し算班は、この図のような、ANDゲートとXORゲートを組み合わせた1ビット同士の加算回路で、結果が2ビットになる、二進数の足し算です。
これは半加算器と呼ばれます。ANDゲートとXORゲートを理解すれば、この回路も正確に理解できるでしょう。 実際に1ビット同士の足し算ができていることを確認してください。
NORゲートを組み合わせたフリップフロップでビット記憶
この図は、フリップフロップと呼ばれるものです。S(セット)が一瞬1になると、直後に Q が 1 になります。 R(リセット)が1になると、直後に Q が 0 になります。
その後は、S や R が 0 に戻っても、その値を保持します。 ※両方 1 にするのは禁止です
つまり、これはビットの値を記憶する、最小単位のメモリーです。 ぜひ動作を確認してみてください。
実際に、SRAM(エスラム)と呼ばれるメモリーは、この考え方に基づいて作られています。 ※パソコン用メモリーとして有名なDRAM(ディーラム)はこれとは異なります
「デジタル回路」とは
デジタル回路は、デジタル信号(0と1)を扱う回路の総称です。 論理回路を含みます。
「水晶発振器」とは:デジタル回路に指揮棒を振るいタイミングを制御
順次処理するデジタル回路は、信号を変化させるタイミングが重要です。 正しく順番に処理をするためには、回路全体でタイミングを合わせる必要があります。
そのタイミングを制御する、指揮棒を振るう役割を担うのが、水晶発振器です。
「水晶発振器」とは:デジタル回路の指揮者
水晶発振器は、水晶(人工水晶)を中心に据えた、正確にリズムを刻む部品です。
これが、デジタル回路に対して指揮棒を振るい、回路全体のタイミングを制御する役割を担います。 いわば指揮者のような役割を担っています。
「クロック」とは:デジタル回路のタイミングを制御する電気信号
水晶発振器が振るう指揮棒、タイミングを制御するための電気信号を「クロック」と呼びます。
パソコンに搭載される CPU の速度を示す用語に「クロック周波数」がありますが、そのクロックです。 クロック周波数が高いほど、より高速に動くデジタル回路になります。 ※実際には、水晶発振器の周波数を変換してクロック周波数として使用します。 また厳密には、1クロックの動作量が各デジタル回路で異なるので、クロック周波数だけで回路の速度は比較できません。
ゲームプログラミングにおける「論理回路」
ゲームプログラミングにおいて、論理回路は、基本的には意識する必要はありません。
ただしこれを知っていると、ハードウェアを意識した開発ができますので、他者とは違う貴方の武器になるかもしれません。
【コラム】「オーバークロック」は慎重に
パソコンに対して「オーバークロック」という行為があります。 クロック周波数を上げることで、パフォーマンスを上げる行為です。
通常、デジタル回路は安全マージンが取られて作られているので、 クロック周波数を規定値より上げても、ある程度までなら動作する場合が多いです。
ただし、エピソード「ビット」で解説した通り、現実のデジタル回路には信号の変化に時間が必要など、限界があります。 つまりクロック周波数を高くしすぎると、回路がついてこられない状態になります。 そうなると、挙動の説明が難しいわかりづらい不具合になりますので、注意が必要です。
加えて、オーバークロックは通常、保証対象外で、発熱による熱暴走や寿命低下などの問題もあり得ますので、実施する場合は自己責任かつ慎重に行いましょう。
【コラム】エンターテインメントに登場するデジタル回路
余談ですが、実はこの論理回路、エンターテインメントの世界にも登場します。 筆者の知る事例を2つ紹介します。
「三体」に登場する論理回路
SF小説[PR]「三体」には、論理回路を組み合わせたコンピューターが登場します。 論理ゲートもしっかり記載されていて、筆者はとても感動しました。
しかしネットフリックス版の制作者はそこに感動しなかったのか、 エピソード3に登場するそのシーンは、雰囲気だけになってしまいました。 残念ですが、プログラマーでもここまで知っている人は少ないでしょうから、仕方がないとも思います。 ※個人の感想です
「三体」の著者は、コンピューターエンジニア出身と公表されていますが、エンジニアの中でもコンピューターのハードウェアに詳しい方だと思われます。
「マインクラフト」内にコンピューター
パーツを組み合わせて世界を作る[PR]「マインクラフト」は、小学生にも人気のゲームです。
その「マインクラフト」にはレッドストーンと呼ばれる仕組みがあり、信号を伝えるパーツやスイッチの役割を担うパーツ等があります。 これを使って、マインクラフト内でコンピューターを作った方がいます。
確かに理屈では、スイッチが有ればコンピューターを作れますが、とんでもない強者だと思います。
[PR]
マンガで感じる!本当の基礎から学ぶゲームプログラミングとは
「マンガで感じる!本当の基礎から学ぶゲームプログラミング」シリーズでは、 主に、ゲーム開発を題材として、プログラミング時に筆者が脳内でイメージするコンピューター内部動作や本質を、マンガにてお伝えします。
プログラミングの本質をマンガで理解
AI時代のプログラミングは、本質理解が重要です。 本質を理解していれば、あとはAIに任せて、自身を持って完成したプログラムに責任が持てるでしょう。
そのため本シリーズでは、コーディングの実例や詳細よりも、「本質をイメージとして感じられること」を最優先としています。 まずマンガで、情報をできる限り絞り、プログラミングの仕組みやコンピューターの内部動作を、物理的に可視化してお届けします。
そして文章の解説で徹底的に深堀りします。
登場人物紹介
マンガで感じる!本当の基礎から学ぶゲームプログラミングシリーズには、主に社長、クリスタル、およびメカたちが登場します。
※実在の人物とは関係ありません社長
本シリーズの偉い人です。マンガでは、指示すなわち「要件定義」を行います。
クリスタル
社長の指示を、メカを活用して解決します。名前は、コンピューター内部で指揮者の役割を果たす「水晶発振器」に由来します。
メカたち
用途に応じて多数存在し、果たす役割がそれぞれ与えられています。クリスタルの指示に従い、ある時はプログラムの変数や関数のように、ある時はデジタル回路の素子や部品のように振る舞います。
「マンガで感じる!本当の基礎から学ぶゲームプログラミング」にかける想い
筆者が本シリーズにかける想いや、 より詳しいコンセプトは「マンガで感じる!本当の基礎から学ぶゲームプログラミング」にて語っています。 そちらもぜひご覧ください。
本エピソードから読み始めた方へ
もしあなたがプログラム初心者で、「マンガで感じる!本当の基礎から学ぶゲームプログラミング」シリーズを本エピソードから読み始めた場合は、 ぜひ最初のエピソード「プログラム」から読むことをご検討ください。
AIを専属の家庭教師にして論理回路を学ぼう
本記事では、電子スイッチで作る回路「論理回路」について解説しました。 コンピューターは、これらを組み合わせてできています。
マンガを読んで興味が湧いた、解説のこのキーワードが気になった、などあれば、AIを専属の家庭教師に見立てて対話してみましょう。 各人の理解度に応じた質疑応答ができて、理解が深まりますので強くオススメします。
皆さまの論理回路およびプログラミングの本質理解に、少しでもお役に立てれば幸いです。
補足
- 本記事に記載のプログラムソースコードは、悪意のない範囲で自由に使用・改変していただいて問題ありません。ただし、ご自身の判断と責任でお願いします。
- 記事内容の検討および検証・添削に生成AIの Anthropic Claude と Google Gemini を利用しております。
- 記事内の画像の作成に生成AIの Google Gemini を利用しております。
- ※各社の登録商標または商標について「®」「™」等の表記はしておりません。
カテゴリー:マンガで感じる!本当の基礎から学ぶゲームプログラミング,【プロ指向者向け】ハードウェア基礎編
[PR]

