基本情報の勉強を始めた人が、テキストの最初で出会う洗礼。それが2進数だ。
「コンピュータの世界では 1101 は 13 を表します」——初めて読んだとき、私は真顔でページを戻った。なぜ1101が13なんだ。誰が決めた。どこから13が出てきた。
でも、いまならこう言える。2進数は、新しい数学ではない。私たちが毎日使っている10進数と、まったく同じ仕組みだ。違いはたった一つ、「桁が繰り上がるタイミング」だけ。そこさえ見えれば、基数変換は呪文から単純作業に変わる。4問で終わらせよう。
まず種明かし:10進数も“ポジション制”だった
2進数の前に、ふだんの10進数を分解してみる。たとえば「123」。私たちは無意識に読んでいるが、この数の正体はこうだ。
123 = 1×100 + 2×10 + 3×1
つまり、数字そのものに加えて、「どの位置(桁)に書いてあるか」が重みを持っている。右から1の位、10の位、100の位……と、桁が左に一つ進むごとに重みが10倍になる。これが10進数の正体で、「10ごとに繰り上がる数え方」だ。
2進数は、この繰り上がりルールを「10ごと」から「2ごと」に変えただけ。桁の重みは右から 1、2、4、8、16……と2倍ずつ増えていく。仕組みは1ミリも変わっていない。
【問1】2進数 1101 を10進数に直せ
やってみよう。桁の重みは右から 1、2、4、8。1101 は左から「8の位に1、4の位に1、2の位に0、1の位に1」だ。
1×8 + 1×4 + 0×2 + 1×1 = 13
これだけ。「1が立っている桁の重みを足す」——2進数→10進数は、たったこれだけの作業だ。冒頭の「1101は13」の謎は、もう謎ではない。
【問2】10進数 22 を2進数に直せ
今度は逆向き。定番のやり方は「2で割って、余りをメモする」を商が0になるまで繰り返し、余りを下から読む方法だ。
22÷2=11 余り0 → 11÷2=5 余り1 → 5÷2=2 余り1 → 2÷2=1 余り0 → 1÷2=0 余り1。
余りを下から読んで 10110。検算は問1の方法で:16+4+2=22。ぴったりだ。
「なぜ余りを下から?」と気持ち悪い人は、こう考えるといい。最初の余りは“1の位に残ったぶん”、次の余りは“2の位に残ったぶん”……つまり余りは下の桁から順に確定していく。だから読み上げは逆順になる。理屈がつながると、もう忘れない。

白猫:変換したら、必ず逆向きに検算する癖をつけて。問1と問2はお互いが検算ツールなんだ。本番でも数秒でできるよ。
【問3】2進数どうしの足し算:1011 + 110
筆算でやってみよう。ルールは1つだけ、「1+1=10(繰り上がり)」。10進数で「9+1=10」と繰り上がるのと同じことが、2進数では2で起きる。
右の桁から:1+0=1。次:1+1=10なので0を書いて繰り上がり。次:0+1+繰り上がり1=10なので、また0を書いて繰り上がり。最後:1+繰り上がり1=10。
結果は 10001。検算しよう。1011は11、110は6、合計17。10001は16+1=17。合っている。
繰り上がりが連鎖するとパニックになりがちだが、「2になったら繰り上がる」だけを淡々と守れば、機械的に解ける。むしろ九九がいらないぶん、10進数の筆算より単純だ。
【問4】2進数 11010110 を16進数に直せ
基本情報では16進数もセットで出てくる。ここに、覚えると一生使える便利な性質がある。16進数の1桁は、2進数のちょうど4桁に対応する(16=2の4乗だから)。
だから長い2進数は、右から4桁ずつ区切るだけでいい。11010110 → 「1101」と「0110」。
1101は13。16進数では10〜15をA〜Fで書くので、13はD。0110は6。つなげて D6。これで終わりだ。
検算:D6 = 13×16 + 6 = 214。元の11010110を問1方式で足しても128+64+16+4+2=214。一致する。16進数が出てきても、結局やることは「4桁区切り→各ブロックを問1方式で読む」の繰り返しでしかない。
“2のべき乗”だけは、暗記してもいい
私はこのサイトでさんざん「丸暗記より理解」と言ってきたが、ここだけは例外を認めたい。2のべき乗の数列は、暗記する価値がある。
1、2、4、8、16、32、64、128、256、512、1024。
ここまで(2の0乗〜10乗)が口から出るようになると、基数変換のスピードが目に見えて変わる。問1のような「重みを足す」作業も、問2の「割って余り」も、頭の中に重みの定規が入っている状態でやるのとでは、速さも正確さも別物だ。
しかもこの数列、この先ずっと使う。1024はキロ(KiB)の正体だし、256は次の話に直結する。覚える呪文はこの11個だけ。通勤中にでも、3回唱えておいてほしい。
超頻出:「nビットで何通り表せる?」
基数変換とセットで、科目Aの常連がこの問いだ。「8ビットで表現できる情報は何通りか」。
考え方はシンプルで、1ビットは0か1の2通り。2ビットなら2×2=4通り。つまりnビットなら2のn乗通り。8ビットなら2の8乗で256通り、数で言えば0〜255を表せる。
この「0〜255」、どこかで見たことがないだろうか。そう、IPアドレス(192.168.0.1 のような)の各ブロックが0〜255なのは、それぞれが8ビットだからだ。画像の色が「256階調」なのも同じ理由。——2進数は教科書の中の話ではなくて、あなたが今日見た画面の裏側で、ずっと動いている。
そもそも、なぜコンピュータは2進数なのか
最後に「なぜわざわざこんな数え方を」という根本の疑問にも触れておきたい。理由は、コンピュータの部品が電気のON/OFFという2つの状態で動いているからだ。
ONを1、OFFを0とすれば、電気信号がそのまま数になる。10個の状態を安定して区別するより、2個の状態を区別するほうが、回路は圧倒的に単純で確実に作れる。つまり2進数は、数学者の意地悪ではなく工学的にいちばん合理的な選択だったわけだ。
そう思って見ると、1101の並びもちょっと健気に見えてこないだろうか。——こないか。まあいい、見え方はどうあれ、あなたはもう読めるようになっている。

黒猫:基数変換で覚えることは3つだけ。「重みを足す」「2で割って余りを下から」「16進は4桁区切り」。あとは検算の往復で精度を上げろ。
試験では“ここ”で出る
科目Aでは、基数変換そのものや、2進数の計算・ビット操作の前提知識として序盤の問題で顔を出す。そして科目Bでは、アルゴリズムのトレースで2進数的な発想(フラグ、ビット、2のべき乗)が地味に効いてくる。つまりここは、後の単元への投資だ。
今日の4問、ページを閉じて自力で再現できるか試してみてほしい。特に問2と問4は、自分で数字を変えて(たとえば10進数の37、2進数の10011010で)練習すると、一気に手に馴染む。呪文が道具に変わる瞬間を、ぜひ味わってほしい。
2進数は新しい数学じゃない。「2で繰り上がる」だけの、いつもの数え方だ。