昨日の記事で、2026年共通テストの「情報Ⅰ」にチャレンジしたことを書きました。

プログラマーでありながら、あまり思わしくない結果となりました。
そこで今回は、自身への戒めも込めて、「ここどうして間違えての?」という部分を解説していきたいと思います。

この記事では、第1問・問2の
「Mさんは、図案の種類を増やすために、4×4マスの一つの図案に対する次のような変換方法を考えた。…」
という問題を取り上げます。

問題の詳細を知りたい方は、「2026年共通テスト 情報Ⅰ」などで検索して、実際の問題を確認してみてください。

この問題で問われている内容を端的に言うと、
「16進数を2進数に変換する」、そしてその逆の
「2進数を16進数に変換する」
というものです。

いわゆる2進数、つまり bit に関する問題です。
実はこの bit という言葉こそ、Crebit プログラミング教室の名前の由来でもあります。

……にもかかわらず、僕はこの問題を間違えてしまいました。
正直なところ、かなり恥ずかしいですし、「Crebit プログラミング教室の講師を名乗っていて大丈夫か?」と思ってしまうレベルのミスでした。

実際にどんな問題が出て、どこを間違えたのかというと、次の通りです。

「35AD と表された16進数を2進数に変換せよ」

この問題で、僕は D を2進数で表す際に計算ミス(思い込み)をしてしまいました。
D を 1110 と書いてしまったのです。

正しくは 1101 です。

その後の計算は、この値を元に進めるため、考え方自体は合っていたとしても、以降の解答はすべて間違いという結果になってしまいました。

ということでここからは、
16進数を2進数に変換する方法
2進数を16進数に変換する方法
を、小学生でも分かるように説明していきたいと思います。

16進数 → 2進数(やさしく解説)

16進数ってなに?

まず、16進数とは 0〜9 と A〜F を使って数を表す方法です。
Webのカラーコード(光の三原色)を表現する際にも使われていて、Web制作やプログラミングではよく登場します。

16進数(主にWebの世界で使われる数)10進数(普段の生活で用いられる数)
0〜9そのまま数字
A10
B11
C12
D13
E14
F15

つまり、D = 13 ということになります。

2進数ってなに?

2進数は、0 と 1 だけを使って数を表す方法です。
コンピュータ内部の処理などに利用されます。

たとえば、

10進数2進数
11
210
311
4100

というように、桁が増えていきます。

16進数を2進数に変える方法

16進数を2進数に変換する方法はいくつかありますが、
ここでは 一度10進数に変換してから、2進数に変える方法を紹介します。

少し回り道のように見えますが、
数の意味を理解しながら変換できるので、初心者にはおすすめの方法です。
これが分かると、一気に楽になります。

(D を例にして考えてみよう)

ステップ①:16進数のDを10進数に変換する

先ほどの表で書きました通り「D」は10進数で表すと、13 でした。

ステップ②:10進数を2進数に変換する

次に、この 10進数の 132進数に変えてみましょう。
2進数は「2で割って、あまりを並べる」ことで求められます。

13 を 2 で割っていく

割り算あまり
13 ÷ 261
6 ÷ 230
3 ÷ 211
1 ÷ 201

あまりを 下から上に読むと、

1101

となります。

つまり、

16進数 D → 10進数 13 → 2進数 1101

という変換になります。

他の数も同様の手順で行うことができます。
まとめると以下のようになります。ぜひ一度自分の手で計算してみましょう。

16進数2進数
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001
A1010
B1011
C1100
D1101
E1110
F1111

35AD を2進数に変換してみる

1文字ずつ変換するだけです。

16進数2進数
30011
50101
A1010
D1101

これを左から順につなげます。

0011 0101 1010 1101

これが正しい答えです。

2進数 → 16進数(やさしく解説)

(1101 を例にして考えてみよう)

2進数を16進数に戻す方法は、
「4桁ずつに区切って考える」だけです。

これが分かれば、計算はほぼ不要です。

ステップ①:2進数を4桁ずつに区切る

まず、2進数を 右から4桁ずつに区切ります。

今回の例は、

1101

すでに 4桁なので、そのままでOKです。

ステップ②:4桁の2進数を10進数で考える

次に、それぞれの桁がどんな意味を持っているかを確認します。

1桁目(右)1
2桁目2
3桁目4
4桁目(左)8
1101

は、
8×1 + 4×1 + 0×2 + 1×1 なので、

13

になります。

ステップ③:10進数を16進数に変換する

10進数の 13 は、16進数では D です。

10進数16進数
10A
11B
12C
13D
14E
15F

結果まとめ

2進数 1101
↓
10進数 13
↓
16進数 D

つまり、

1101(2進数)= D(16進数)

となります。

慣れないうちは「大変だな…」と思う計算ですが、慣れてくると本当に一瞬でできるようになります。
ただ、慣れすぎると今回の僕みたいに思い込みでミスをしがちなので、理屈を整理しつつ丁寧に確認しながら進めるのがベストだと思います。