b 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 | AOYAMA Koji's プログラミングブログ
AOYAMA Koji's プログラミングブログ - プログラミングを楽しく体験

【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】プログラミング初心者向け・入門編・基礎編初中級者向けプログラミング解説プログラマー向け実装解説

2026/07/13
【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】

 40年以上のゲームプログラミング経験をマンガで可視化。 今回は、コンピューターが扱うデジタルデータの最小単位である「ビット」(0または1)を、 アナログデータとの違いやトランジスタの仕組みも含めて解説します。
【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】

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


[PR]

【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~


【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 社長「うーん…」傘立ての上のモニターを見て悩む(この駒ではモニターは見えない) 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 モニター画面「降水確率」(バーが中央付近を示している※実際は51%) 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 社長「よし!」傘を持ってでかけようとする 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 社長「いや…やっぱり…」傘を置いて出かけようとする 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 時計のコマ:刻々と時間が過ぎていく 12:05 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 社長「うーん…」頭に手をやってまだ悩んでいる 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「社長」「0 か 1 かハッキリさせましょうか?」 社長「お願いします」涙目 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 ビット ~デジタルデータの最小単位:0または1~ 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 メカ・ビット 登場 (クリスタル)「メカ・ビット!」「結果のビット(ルビ0か1)を表示して」 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 メカ・トランジスタ 登場 (クリスタル)「メカ・トランジスタ!」「オンかオフか判断してビットに伝えて」 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「じゃあ、判断お願い!」 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 メカ・トランジスタ モニターを眺める 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 モニター画面「降水確率」(バーが中央付近を示している※実際は51%) 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 メカ・トランジスタ「51%…」とても悩ましい顔 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 メカ・トランジスタ ひらめいた顔 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 メカ・トランジスタ 解決した顔 お腹のトランジスタマークのベースが光る 矢印 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 メカ・トランジスタ 済ました顔(見えないかも) お腹のトランジスタマークのコレクタとエミッタが繋がる風 集中線エフェクト 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 メカ・トランジスタ「オン」 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 メカ・トランジスタ「オン」 メカ・ビット 聞く 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 メカ・ビット [頭上ランプ点灯][1] 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「1ですね」 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「つまり傘を持って行きましょう」 社長「ありがとう!」 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 玄関 社長「行ってきます!」 傘を持って出かけるシーン 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 時間経過コマ 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 晴れている町中のコマ 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 玄関 扉開いている 社長「ただいま!」傘を持っているが使われていない クリスタル 後ろ姿おじぎ 【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 社長「決断できて良かった!」「デジタルでハッキリィィィ!」自信満々の笑み
次のエピソードへ
【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 二進数

[PR]

「ビット」とは:デジタルデータの最小単位:0または1


 「ビット」の本質「デジタルデータの最小単位」です。 そして具体的には「0」または「1」です。

「デジタルデータ」と「アナログデータ」の違い


【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 デジタルデータとアナログデータ
 デジタルデータと対になる言葉はアナログデータです。 その違いを解説します。

「デジタルデータ」とは


 デジタルデータは、マンガでメカ・トランジスタが判断し、メカ・ビットが示したように、2値、すなわち 0 または 1 を最小単位として構成されます。 この最小単位が、本エピソードで解説しているビットです。
 こうすることにより、データを受け渡す際に、伝送する回路や保存する媒体に多少の誤差が生じても、劣化せず正確に実施することができます。
 なお、具体的なビットの組み合わせ方法については、続くエピソード「二進数」をご覧ください。 それ以降も含めて順次解説します。

「アナログデータ」とは


 対してアナログデータは、無限の段階を持ちます。
 メリットもありますが、誤差により受け渡し時に値が変化し劣化してしまうなど、正確性が要求される場面では不適切です。
 そのため、現代のコンピューターが扱うのは、デジタルデータに統一されています。

電子回路ではオンとオフで1と0


 コンピューターの内部は電子回路になっており、電気で動いています。
 デジタルデータは、電子回路上では、電気のオンオフ10 が表されています。

「トランジスタ」とは:電子スイッチ


【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 NPN型トランジスタ
 コンピューターの電子回路には「トランジスタ」と呼ばれる素子が大量に使われています。

半導体で作られるトランジスタ


 トランジスタは、半導体を組み合わせてできたものです。 半導体は、組み合わせ方と電気の繋ぎ方によって電気を通したり通さなかったりする性質を持ちます。
 例えば、n型とp型と呼ばれる半導体を、この図のように組み合わせたものは、NPN型トランジスタと呼ばれます。 これは、普段は C から E に対して電圧をかけても電気は通りません。 しかし B から E に電流を流すと、C から E も電気が通るようになるという特性があります。

トランジスタで作られる電子スイッチ


 つまり、このトランジスタは電子スイッチになります。
 そして電子スイッチがあれば、それを組み合わせることでコンピューターを作ることができるのです。 その具体的な方法は、エピソード「論理回路」をご覧ください。

ゲームプログラミングにおける「ビット」


 ゲームプログラミングにおいてビットは、担当箇所によっては特に意識しなくても良いものです。
 ただし、デジタルデータを構成する最小単位がビットであり、コンピューターのハードウェアがビットを制御するように作られていることは、紛れもない事実です。
 例えばハードウェアを細かく制御したり、より高度な最適化するためには、ビット単位で考えることが必須です。 表面上のゲームプログラミングに差がなくても、デジタルデータをビット単位で考えられるかどうかで、よりクオリティーの高いゲームプログラミングができるかどうかの差になる場合があります。

【コラム】トランジスタとコンピューターの進化


 前述の通り、コンピューター電子スイッチがあれば作ることができます。
 つまり、電気的にオン・オフできれば、コンピューターを構成する素子はトランジスタである必要はありません。 実際、リレー真空管が使われていた時代がありました。

リレー式コンピューター


 リレーは、電磁石の力を利用して、電気を通すと物理的に金属の位置が変わり、スイッチのオンとオフが切り替わる素子です。
 これを組み合わせて作られたリレー式コンピューターが、以前はありました。
 筆者は、小学生の時にマイキットという電子工作の知育玩具でリレーを知りました。 そして大人になり、上野の国立科学博物館でリレー式コンピューターの展示を見て感動しました。
 ただし実際に動いているところは見ていません。 スイッチオンのときには物理的に金属同士が繋がるので、ガチャガチャうるさかったものと想像します。

真空管式コンピューター


 真空管は、真空中に飛ぶ電子を、熱と電圧で制御することで、スイッチのオンとオフを切り替える素子です。
 これで作られたコンピューターもありました。 こちらも筆者は国立科学博物館で見た程度ですが、活躍していた真空管式コンピューターの実物は大きく、発熱がすごかったものと推測します。

半導体式コンピューター


 前記を経て、今のトランジスタを用いた、現代の半導体式コンピューターになりました。
 なお、前述のNPN型トランジスタは電流が必要でしたが、今のコンピューターはさらに進化していて、電流をほぼ必要とせず、電圧制御のトランジスタ(MOSFET)が使用されています。 これにより、電気の消費量が抑制されています。
 そして半導体は非常に小さく素子が作れるので、1つのコンピューターにより多くのトランジスタを組み込むことができるようになります。 例えば現時点での最新ゲーム機の CPU には 100億以上のトランジスタが使われています。
 リレーや真空管は、1つ1つが目に見える大きさなので、そこまで多くできません。 過去に、真空管式コンピューターで2万近くの真空管が使われた例があるようで、確かに多いですが、トランジスタとは桁が違います。 参考までにその真空管式コンピューターは、100畳ほどの大きさだったようです。 ゲーム機の CPU のチップ部分は 1cm 角くらいですので、その差は歴然ですね。

【コラム】デジタルの理想と現実


【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 デジタルの理想と現実  デジタルは、0 か 1 かハッキリしていて明確です。
 しかし実際の電子回路では、それは理想の話。 現実の電子回路は 0 と 1 が変化するために、ほんのわずかですが、変化するための時間が必要です。 その間は 0 か 1 か不安定です。
 普段のプログラミングでは意識することはありませんが、状況によってはこのアナログ的な部分を、意識せざるを得ないこともあります。

アナログを意識する必要があった不具合


 結論から書きますと、某ゲームを開発中に、0 と 1 の変化途中のデータを読んでしまっていた、と思われる不具合がありました。
 当時のアーキテクチャは、
コンピューターのエピソードで解説したのと異なり、CPU と SPU が分かれていました。 その構成で、 CPU から書き込んだデータが、SPU で正しく読めない場合が稀にありました。
 その状況において、デジタル回路をアナログ的に捉えられる優秀なプログラマーが、書き込みと読み込みが重なると、 CPU が 2ビットを同時に 0 から 1 にしたハズなのに、SPU は片方が 0 で、片方は 1 と読んでしまう場合があると予想して、不具合を修正できました。 筆者は当時、この現象に衝撃を受けました。
 今のコンピューターのアーキテクチャには、CPUとメモリーなどをつなぐ導線(バス)を同時に使用しないよう調停する仕組みがあります。 しかし当時は同時に読み書きできたために、発生した現象です。 ※一部推測を含みます

ハードウェアの不具合を考慮したプログラミング


 普段のゲームプログラミングでは、ハードウェアの不具合を意識することはほとんどありません。
 しかし、例えば、新ゲーム機や専用ハードウェアと同時発売のゲームを開発する場合などは、ハードウェアも開発途中のため、試作機の不具合に遭遇することがあります。
 筆者の経験では、結論としては導線が1本切れていた、ということがありました。 まだ新人の頃だったので、自分で何度も「やっぱりこの1ビットがおかしいよなあ」と確認して、ビクビクしながら大先輩に不具合報告したことを思い出します。 (切れてたゴメンゴメンくらいの気さくさでビクビクしたのは無駄でしたが笑)
 言い換えると、新ハードウェアとの同時開発をする場合、ビットやトランジスタなどのハードウェアを理解しているプログラマーに、仕事の依頼が来るでしょう。 ぜひ皆さまにも、その選択肢があるゲームプログラマーになっていただきたいです。

[PR]

マンガで感じる!本当の基礎から学ぶゲームプログラミングとは


 「マンガで感じる!本当の基礎から学ぶゲームプログラミング」シリーズでは、 主に、ゲーム開発を題材として、プログラミング時に筆者が脳内でイメージするコンピューター内部動作や本質を、マンガにてお伝えします。

プログラミングの本質をマンガで理解


 AI時代のプログラミングは、本質理解が重要です。 本質を理解していれば、あとはAIに任せて、自身を持って完成したプログラムに責任が持てるでしょう。
 そのため本シリーズでは、コーディングの実例や詳細よりも、「本質をイメージとして感じられること」を最優先としています。 まずマンガで、情報をできる限り絞り、プログラミングの仕組みやコンピューターの内部動作を、物理的に可視化してお届けします。
 そして文章の解説で徹底的に深堀りします。

登場人物紹介

【マンガで感じる】ビット ~デジタルデータの最小単位:0または1~ 【本当の基礎から学ぶゲームプログラミング】 登場人物 社長 クリスタル メカたち  マンガで感じる!本当の基礎から学ぶゲームプログラミングシリーズには、主に社長、クリスタル、およびメカたちが登場します。 ※実在の人物とは関係ありません

社長

 本シリーズの偉い人です。
 マンガでは、指示すなわち「要件定義」を行います。

クリスタル

 社長の指示を、メカを活用して解決します。
 名前は、コンピューター内部で指揮者の役割を果たす「水晶発振器」に由来します。

メカたち

 用途に応じて多数存在し、果たす役割がそれぞれ与えられています。
 クリスタルの指示に従い、ある時はプログラム変数関数のように、ある時はデジタル回路の素子や部品のように振る舞います。

「マンガで感じる!本当の基礎から学ぶゲームプログラミング」にかける想い


 筆者が本シリーズにかける想いや、 より詳しいコンセプトは「マンガで感じる!本当の基礎から学ぶゲームプログラミング」にて語っています。 そちらもぜひご覧ください。

本エピソードから読み始めた方へ


 もしあなたがプログラム初心者で、「マンガで感じる!本当の基礎から学ぶゲームプログラミング」シリーズを本エピソードから読み始めた場合は、 ぜひ最初のエピソード「プログラム」から読むことをご検討ください。

AIを専属の家庭教師にしてビットを学ぼう


 本記事では、デジタルデータの最小単位「ビット」について解説しました。 具体的には 0 または 1 です。
 マンガを読んで興味が湧いた、解説のこのキーワードが気になった、などあれば、AIを専属の家庭教師に見立てて対話してみましょう。 各人の理解度に応じた質疑応答ができて、理解が深まりますので強くオススメします。
 なお、マンガでは 51% でオンとしましたが、トランジスタが「50%を超えたら電子スイッチオン」と判断しているわけではありません。 余談ですが、降水確率は30%以上で傘を持っていくのが目安だそうです。
 本エピソードが皆さまのビットおよびプログラミングの本質理解に、少しでもお役に立てれば幸いです。

補足

  • 本記事に記載のプログラムソースコードは、悪意のない範囲で自由に使用・改変していただいて問題ありません。ただし、ご自身の判断と責任でお願いします。
  • 記事内容の検討および検証・添削に生成AIの Anthropic Claude と Google Gemini を利用しております。
  • 記事内の画像の作成に生成AIの Google Gemini を利用しております。
  • ※各社の登録商標または商標について「®」「™」等の表記はしておりません。


カテゴリー:マンガで感じる!本当の基礎から学ぶゲームプログラミング,【プロ指向者向け】ハードウェア基礎編
[PR]