基本情報技術者試験の勉強を始めると、真っ先に立ちはだかるのが 2進数(バイナリ) です。 参考書を開くと、たいていこう書いてあります。
- 10進数を2進数にするなら: 「2で割り続けて、余りを下から読む」
- 2進数を10進数にするなら: 「各ケタに重みを掛けて、全部足す」
理屈はわかります。でも、正直なところ僕はこう思っていました。 「……やり方はわかった。でも、全然ピンとこない!」
そこで、数字として覚えるのをあきらめた僕が、「物語」を想像することで2進数と仲良くなれた方法をご紹介します。
そもそも、2進数ってなんだっけ?
まずは基本をサッとおさらいしましょう。
- 10進数: 私たちが普段使っている数え方。0〜9を使い、10で桁が上がります。
- 2進数: コンピュータが使う数え方。0と1だけで表します。
2進数の世界は、右から左へ行くほど、桁の価値が 2倍、2倍…… と増えていきます。 右から順に、こんな「数字の席」が決まっているイメージです。 【 …… 32 / 16 / 8 / 4 / 2 / 1 】
たとえば、2進数の 11010 を10進数に戻すときは、「1がある場所の数字を足す」 だけでOKです。 16 + 8 + 2 = 26 という感じですね。
数字が無機質すぎて、脳が拒否してしまう……
「仕組みはわかった。でも、いざテストで数字が並ぶと頭が真っ白になる」 そんなことはありませんか? 僕はそうでした。
11010101001101010
こんなふうに 0 と 1 が並ぶと、急に脳が「これは暗号だ!」とシャットダウンしてしまうんです。計算ミスも増えるし、やる気もなくなりますよね。
そこで、僕は2進数を「人間の言葉」に置き換えることにしました。
「二進国(にしんこく)」の物語で理解する
2進数の世界を、こんな物語に置き換えてみてください。
舞台:二進国
あなたは旅人です。不思議な「二進国」に迷い込みました。 この国のルールはたった2つです。
- 使える数字は 0 と 1 だけ。
- 兵士たちが横一列に座っている。イスには右から順に 「パワー」 が決まっている。 (右から 1、2、4、8、16、32…… と2倍ずつ強くなる)
ルール:1なら「いる」、0なら「空席」
- 1 → 兵士が座っている!(パワーが加算される)
- 0 → イスは空っぽ。(パワーはゼロ)
物語①:【2進数 → 10進数】は「兵士の合計パワー」を出すだけ
門番に「お前のコードは 11010 だ。合計パワーを言え!」と言われたら、座席表を見ます。
- 16の席:1(いる!)
- 8の席:1(いる!)
- 4の席:0(空席)
- 2の席:1(いる!)
- 1の席:0(空席)
「えーっと、16 + 8 + 2 だから…… 26だ!」 数字を変換するというより、「座席表を見て、座っている人のパワーを合計する」 だけ。これならイメージが湧きませんか?
物語②:【10進数 → 2進数】は「必要な兵士をスカウトする」だけ
逆に、10進数を2進数にするときはこう考えます。 「目標のパワーになるように、兵士をスカウトしてこよう!」
たとえば「合計パワーを 45 にせよ」と言われたら? 大きいイスに座る兵士から順に、スカウトできるか考えます。
- 32の兵士:スカウトする!(残り 13)
- 16の兵士:いらない(13を超えちゃうから)
- 8の兵士:スカウトする!(残り 5)
- 4の兵士:スカウトする!(残り 1)
- 2の兵士:いらない(1を超えちゃうから)
- 1の兵士:スカウトする!(ピッタリ!)
スカウトした人を「1」、しなかった人を「0」で並べると…… 101101 これが 45 の2進数です!
物語③:「割り算」の正体は、軍隊の分裂シーン!
教科書によく載っている「2で割り続けて余りを出す」という計算。 「なんで割るの?」「なんで下から読むの?」と混乱しがちですが、あれは実は…… 「兵士たちを2人組の部隊に分けていく、軍隊の分裂シーン」 なんです。
例として、13人の兵士を2進数にしてみましょう。
ステップ1:2人組をどんどん作る
司令官が叫びます。「2人1組の部隊を作れ!」
- 13人いるとき:
- 6組のペアができて、1人余る。
- その6人でまたペアを作る:
- 3組のペアができて、0人余る。
- その3人でまたペアを作る:
- 1組のペアができて、1人余る。
- 最後の1人でペアを作る:
- 0組(ペアになれない!)けど、1人余る。
ステップ2:合言葉は「下から順に!」
ここで出た「余った人数」を上から並べると「1、0、1、1」になります。 でも、二進国のルールでは 「最後に見つかった余りこそが、一番位の高いリーダーだ!」 という決まりがあります。
だから、下から順に読みます。 ✅ 1101
これで、10進数の「13」は、2進数の「1101」だとわかりました。 「ただの割り算」と思うと退屈ですが、「2人組になれなかった寂しい1人を探していく作業」だと思うと、ちょっと覚えやすくなりませんか?
3つの物語で苦手な2進数を克服しよう
「2進数がどうしても頭に入らない……」と思ったら、複雑な理屈はいったん忘れてください。 二進国の世界にあるのは、この3つの物語だけです
✅ 2進数 → 10進数
「席に座ってる兵士のパワーだけ足す」。 2進数は「誰が座っているか」を示した座席表です。 右から順に決まっているパワー(1, 2, 4, 8…)を見て、席にいる兵士のパワーを合計するだけで、10進数に早変わりします。
✅ 10進数 → 2進数
「必要な兵士をスカウトして席に座らせる」。 目標の数(10進数)にピッタリ届くように、大きいパワーの兵士から順に「お前、うちに来い!」とスカウトして席を埋めていく感覚です。選んだ席は「1」、空席は「0」にするだけです。
✅ 割り算でやるやつ
「軍隊を2人組に分けたときに余る兵士」。 教科書通りの計算をするなら、「軍隊の分裂シーン」をイメージしましょう。 ひたすら2人組のペアを作っていき、ペアになれず寂しく余った兵士を、最後の1人から順に下から拾い上げれば、それが答えになります。
この物語を知っていれば、2進数はもう「暗号」ではなく、ただの「席替えとスカウトのルール」に見えてくるはずです。
おわりに:2進数は「暗号」じゃない
2進数でつまずくのは、才能がないからではありません。 「数字を数字のまま、無理やり飲み込もうとしているから」 かもしれません。
一度、この「座席表と兵士」の物語を思い出してみてください。 すると、あんなに冷たく見えた 0 と 1 の並びが、「誰が座っているかを示す地図」 に見えてくるはずです。
もし「やっぱり頭に入らない!」と思ったら、いつでもこの物語に立ち返ってみてくださいね。
🎁練習問題
あなたは二進国の大きな門の前に立っています。 門番が、キラリと光る木札をあなたに見せました。
門番:「この通行証(11010)を読み解け! 合計パワーはいくつだ……?」
【ヒントと答え】(テキスト反転しています)
座席表を右から思い出してみましょう……。
- 16 の席:兵士がいる!(1)
- 8 の席 :兵士がいる!(1)
- 4 の席 :空席だ…… (0)
- 2 の席 :兵士がいる!(1)
- 1 の席 :空席だ…… (0)
さあ、「いる兵士(1)」のパワーだけを合計すると、答えはいくつになるでしょうか?
答えは 26。


コメント