b 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 | AOYAMA Koji's プログラミングブログ
AOYAMA Koji's プログラミングブログ - プログラミングを楽しく体験

【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】プログラミング初心者向け・入門編・基礎編初中級者向けプログラミング解説プログラマー向け実装解説

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

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

プログラミングブログ記事一覧


[PR]

【マンガで感じる】論理回路 ~電子スイッチで作る回路~


【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 社長「クリスタル君! すごいことに気づいてしまったのですが……」 クリスタル「何事でしょうか?」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 社長が腹筋をしている写真 1回目:0001 2回目:0010 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 社長「1回目から2回目は」「カウントが1増えています。」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 社長が腹筋をしている写真 1回目:0001 2回目:0010 (社長)「つまり**1+1=10**なのです!」自信満々 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「なるほど」「二進数の足し算ですね」うやうやしくも冷静 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 社長「この**1+1=10**を完璧に計算できる」「**足し算班**を作ってもらえますか」 クリスタル「承知しました」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 論理回路 ~電子スイッチで作る回路~ 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 (クリスタル)「メカ・アンド!」「アンドは、入力のビットが両方1の時に1にして」 メカ・アンド登場 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 (クリスタル)「メカ・エックスオア!」「エックスオアは、どちらか片方だけが1の時に1にして」 メカ・エックスオア登場 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 (クリスタル)「メカ・ビット!」「2人で入力のビットを表示して」 メカ・ビット 2人登場 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「社長、足し算班ができましたので、確認します」 社長了解 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「では、まず、0+0 をお願い!」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・ビット2名「0」「0」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・アンド「(思考)0&0」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・アンド「0」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・エックスオア「(思考)0^0」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・エックスオア「0」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・アンド「0」(左) メカ・エックスオア「0」(右) 赤線強調 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 社長「0+0=00 ですね」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「成功です」「続きは社長からご確認ください」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 社長「では…」「0+1 !」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・ビット2名「0」「1」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・アンド「(思考)0&1」「0」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・エックスオア「(思考)0^1」「1」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・アンド「0」(左) メカ・エックスオア「1」(右) 赤線強調 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 社長「0+1=01 ですね」「では 1+0 !」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・ビット2名「1」「0」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・アンド「(思考)1&0」「0」(左) メカ・エックスオア「(思考)1^0」「1」(右) 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・アンド「0」(左) メカ・エックスオア「1」(右) 赤線強調 (社長)1+0=01 ですね! 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 社長「では究極の問い!」「1+1!」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・ビット2名「1」「1」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・アンド「(思考)1&1」「1」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・エックスオア「(思考)1^1」「0」 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 メカ・アンド「1」(左) メカ・エックスオア「0」(右) 集中線エフェクト 【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 社長「1+1=10 !」「完璧だ…」「ついに我が社は究極の足し算班を手に入れましたぞ!」(震えながらドヤ顔) クリスタル おじぎ
次のエピソードへ
【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 バイト

[PR]

「論理回路」とは:電子スイッチで作る回路


 「論理回路」の本質「電子スイッチで作る回路」です。
 トランジスタを用いた電子スイッチで作られる各種「論理ゲート」。 それらを組み合わせて作られる回路です。
 CPUGPUメモリーの一部など、各種デジタル電子装置が論理回路で作られています。

「論理ゲート」の種類と代表例:AND/OR/XOR/NOT/NAND/NOR


【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 論理ゲートの代表例: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
 ANDゲート(アンドゲート)は、2つの入力どちらも1のときに出力が1になる論理ゲートです。
 ゲーム開発に用いられる主要なプログラミング言語のビット演算子「&」が相当します。 マンガのメカ・アンドのお腹の記号もここから来ています。

「ORゲート」とは


入力A
入力B
OR出力
0
0
0
0
1
1
1
0
1
1
1
1
 ORゲート(オアゲート)は、2つの入力の少なくともどちらか一方が1のときに出力が1になる論理ゲートです。
 主要なプログラミング言語のビット演算子「|」が相当します。

「XORゲート」とは


入力A
入力B
XOR出力
0
0
0
0
1
1
1
0
1
1
1
0
 XORゲート(エックスオアゲート)は、2つの入力どちらか片方のみが1のときに出力が1になる論理ゲートです。
 主要なプログラミング言語のビット演算子「^」が相当します。 マンガのメカ・エックスオアのお腹の記号もここから来ています。

「NOTゲート」とは


入力
NOT出力
0
1
1
0
 NOTゲート(ノットゲート)は、入力を反転した出力になる論理ゲートです。
 主要なプログラミング言語のビット演算子「~」が相当します。

「NANDゲート」とは


入力A
入力B
NAND出力
0
0
1
0
1
1
1
0
1
1
1
0
 NANDゲート(ナンドゲート)は、2つの入力どちらも1のとき以外、すなわち少なくともどちらか一方が0のときに出力が1になる論理ゲートです。

「NORゲート」とは


入力A
入力B
NOR出力
0
0
1
0
1
0
1
0
0
1
1
0
 NORゲート(ノアゲート)は、2つの入力の少なくともどちらか一方が1のとき以外、すなわちどちらも0のときに出力が1になる論理ゲートです。

「論理ゲート」の仕組みを電子スイッチによる疑似回路で解説


 論理ゲートのうち、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ビット加算  マンガで作られた足し算班は、この図のような、ANDゲートとXORゲートを組み合わせた1ビット同士の加算回路で、結果が2ビットになる、二進数の足し算です。 これは半加算器と呼ばれます。
 ANDゲートとXORゲートを理解すれば、この回路も正確に理解できるでしょう。 実際に1ビット同士の足し算ができていることを確認してください。

NORゲートを組み合わせたフリップフロップでビット記憶


【マンガで感じる】論理回路 ~電子スイッチで作る回路~ 【本当の基礎から学ぶゲームプログラミング】 フリップフロップ (保持)S=0 and R=0 then Q=保持、(セット)S=1 and R=0 then Q=1、(リセット)S=0 and R=1 then Q=0、(禁止)S=1 and R=1  この図は、フリップフロップと呼ばれるものです。
 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]