b 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 | AOYAMA Koji's プログラミングブログ
AOYAMA Koji's プログラミングブログ - プログラミングを楽しく体験

【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】プログラミング初心者向け・入門編・基礎編初中級者向けプログラミング解説プログラマー向け実装解説

2026/07/20
【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】

 40年以上のゲームプログラミング経験をマンガで可視化。 今回は0と1だけ、2パターンの組み合わせで表す数字「2進数」。 メカたちが電球のオン・オフで表現するのをマンガで見てみましょう。
【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】

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


[PR]

【マンガで感じる】二進数 ~0と1で表す数~


【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 社長室 社長「クリスタル君」 クリスタル「はい」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 社長机 社長「腹筋10回を記録したいので」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 メカ・ビット丸枠 社長「ビット君を10人呼んでください」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「**二進数**を使えば」「ビット**4人**で**15まで**数えられますが」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「それでよろしいですか?」 社長OK 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 二進数 ~0と1だけで表す数~ 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 トレーニングルーム クリスタル「メカ・ビット班」「4人集合!」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「メカ・ビット0!」「あなたは毎回オンとオフを切り替えて!」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「メカ・ビット1」「2回に1回!」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「メカ・ビット2は4回に1回!」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「メカ・ビット3は8回に1回切り替えて!」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「メカ・コピー!」「記録をお願い!」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「社長!」「準備が整いました」 社長頷く 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 [0000] 社長腹筋前 クリスタル「いつでもどうぞ」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 社長腹筋開始 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 [0000] & 社長腹筋中 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「いーち!」 メカ・コピーも構えている 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 [0001] 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 - パシャ[0001 & 社長腹筋中]写真ビジュアル 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 [0001] & 社長腹筋戻る 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 [0001] & 社長腹筋始める 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 (クリスタル)「に!」 パシャ[0010 & 社長腹筋中]写真ビジュアル 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 (クリスタル)「さん!」 パシャ[0011 & 社長腹筋中]写真ビジュアル 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 3枚重ねて表示、社長ちょっと苦しく クリスタル「し!」0100 クリスタル「ご!」0101 クリスタル「ろく!」0110 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 3枚重ねて表示、社長だいぶ苦しく クリスタル「しち!」0111 クリスタル「はち!」1000 クリスタル「きゅう!」1001 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「じゅう!」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 パシャ[1010 & 社長腹筋中]写真ビジュアル 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 クリスタル「お見事!」「4人で10までカウント達成です!」「社長もおつかれさまでした!」 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 社長腹筋終了(かなり苦しそう) 【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 パシャ[中央で金メダルをぶらさげる社長、その前に1010状態のメカ・ビット4人]写真ビジュアル(やや斜め)最終コマ
次のエピソードへ
【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 論理回路

2進数の例


二進数(2進数)
十進数(10進数)
0000
0
0001
1
0010
2
0011
3
0100
4
0101
5
0110
6
0111
7
1000
8
1001
9
1010
10
1011
11
1100
12
1101
13
1110
14
1111
15

[PR]

「2進数」とは:0と1だけで表す数


「2進数」の本質は「0と1だけで表す数」です。
 マンガでは、メカ・ビットたちが「点灯=1」「消灯=0」で数を表現していました。 これはコンピューターが電気の「ON=1」「OFF=0」によりデジタルで動いていることを表しています。
 そして、その「0」と「1」を桁(重み)をつけて組み合わせることで、より大きな数を表すことができます。

ビットごとの役割(重み)


メカ
重み
+1の動作
ビット0(1番右)
1
毎回切替
ビット1(右から2番目)
2
2回に1回切替
ビット2(右から3番目)
4
4回に1回切替
ビット3(1番左)
8
8回に1回切替
 マンガに登場したメカたちは、それぞれ担当する「重み」が違います。
 点灯している(1になっている)メカの「重み」をすべて足し算すると、そのときの数字になります。 この4ビット(4桁の2進数)で、0から15まで表すことができます。

「10回」を検証してみよう


メカ
重み
状態
ビット3
8
明(1)
8
ビット2
4
暗(0)
0
ビット1
2
明(1)
2
ビット0
1
暗(0)
0
 マンガの最後、社長が腹筋10回を達成したときのメカたちの並びは「1010」でした。これを計算してみます。 ※表は前述と順序逆転してビット降順にしています
 この値の合計は 8 + 2 = 10 です。
 このように、0と1の組み合わせだけで、正しく(10進数の)「10」という数字が表現できていることがわかります。

ゲームプログラミングにおける「2進数」


 コンピューターは 01 のデジタルで動いており、2進数は、コンピューターの内部で持っているデータ形式です。 つまりゲームプログラミングにおいても重要な根幹部分ですが、プログラムは 10進数が使えますので、担当箇所によっては知らなくても大きな問題はありません。
 ただし、特に最適化ハードウェア操作で使用する場合があるので、担当箇所によってはとても重要です。 プログラムもデータもすべて内部的にはビットの組み合わせつまり2進数で表されていますので、より深い処理をする場合には、高頻度で2進数が必要になります。

最適化で2進数を扱う


 効果的に2進数を使用すれば、容量効率速度効率を同時に高める最適化ができる場合があります。
 一般的に最適化は、容量効率と速度効率のトレードオフになります。 例えはメモリーを使用して速度効率を上げる、処理速度を落として容量効率を上げるなど。
 しかし2進数の効果的に使えば、その両方を同時に解決できる可能性があります。 当ブログでも、例えば自動生成☆詰将棋で、2進数を使用した、速度効率と容量効率を同時に高める最適化を行っています。 解説記事「バイナリデータで実現する高速化」もご参照ください。
 一方、2進数を使用して最適化をすると、「データやプログラムが読みづらくなる」「変更に弱くなる」というデメリットが生じます。 通常はこのデメリットの方が大きく、2進数を使用すべき機会は少ないです。 しかし、最適化が必要な状況になれば、積極的に使用していきましょう。

ハードウェア操作で2進数を意識


 ハードウェアをプログラムから操作する場合、「このアドレスの第○ビットを1にするとこういう設定になる」ということがあります。
 もし、皆さまの身近にディップスイッチで設定可能な機械があれば、イメージできると思います。 ディップスイッチでは、ON/OFF設定できるスイッチが4個や8個並んでいます。 これはすなわち、2進数を用いて、設定変更を行っていると言えます。
 現代のゲーム機でハードウェアを直接操作する機会は少ないです。 ただしプラットフォーマーが用意したライブラリに値を渡すときに、2進数で指定することがあります。 内部的にはその先で、ハードウェアに値を渡している場合があります。
[PR]

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


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

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


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

登場人物紹介

【マンガで感じる】二進数(2進数) ~0と1だけで表す数~ 【本当の基礎から学ぶゲームプログラミング】 登場人物 社長 クリスタル メカたち  マンガで感じる!本当の基礎から学ぶゲームプログラミングシリーズには、主に社長、クリスタル、およびメカたちが登場します。 ※実在の人物とは関係ありません

社長

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

クリスタル

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

メカたち

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

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


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

AIを専属の家庭教師にして2進数を学ぼう


 本記事では、コンピューター内部で扱っている数値「2進数」を解説しました。
 マンガを読んで興味が湧いた、解説のこのキーワードが気になった、などあれば、AIを専属の家庭教師に見立てて対話してみましょう。 各人の理解度に応じた質疑応答ができて、理解が深まりますので強くオススメします。
 プログラミングの本質理解に少しでもお役に立てれば幸いです。

補足

  • 記事内容の検討および検証・添削に生成AIの Anthropic Claude と Google Gemini を利用しております。
  • 記事内の画像の作成に生成AIの Google Gemini を利用しております。
  • 画像内のラスタライズ文字フォントにOpen Font LicenseZen Antiqueを使用しております。
  • 画像内のラスタライズ文字フォントにOpen Font LicenseNoto Sans Japaneseを使用しております。
  • 画像内のラスタライズ文字フォントにOpen Font LicenseNoto Sans Monoを使用しております。
  • ※各社の登録商標または商標について「®」「™」等の表記はしておりません。


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