2026.10.30タイムレスな子供の教育
2026年共通テスト「情報Ⅰ」クロスステッチ問題|解き方から考える情報を学ぶ意味【文京区・新宿区のプログラミング教室が解説】
こんにちは。文京区・新宿区を拠点とするプログラミング教室、タイムレスエデュケーションの鈴木です。2025年の大学入学共通テストから「情報Ⅰ」が新たに出題されるようになりました。「情報Ⅰ」で問われるのは、プログラミングの知識だけではありません。身近なものごとを情報として表し、一定のルールに従って考える力も必要です。
今回取り上げるのは、2026年度の共通テスト「情報Ⅰ」で出題された、クロスステッチ(刺しゅう)の図案に関する問題です。手芸とコンピュータは一見関係がなさそうですが、この問題には「現実のものごとをどうデータで表し、処理するか」という情報科学の基本的な考え方が含まれています。「2進数や16進数は、何のために勉強するの?」と思ったことはありませんか。この記事では、問題の解き方を確認しながら、数字の変換を覚えるだけではない「情報Ⅰ」を学ぶ意味について考えていきます。
問題①:図案を16進数で表す
次の文章を読み、空欄【エ】~【ケ】に当てはまる数字または文字をマークせよ。
Mさんは家庭科の授業で、クロスステッチの刺しゅうを作成することになった。クロスステッチは、布上の格子の1マスに対して糸を「×」の形に縫う刺しゅうの方法である。刺しゅうの模様は、図1に示すような「図案」で表現される。
Mさんは図案の作成にコンピュータを利用しようと考え、縫うマスを1、縫わないマスを0で表すことにした。図1の一番上の4マス(1行)は、2進法で表現すると4桁の1000₂となり、これを16進法で表現すると1桁の8₁₆になる。図1の4行分を続けて書くと、図1の図案は8C8F₁₆という16進法での4桁で表現できる。この方式に基づいて、図2の図案を16進法で表現すると、「【エ】【オ】27₁₆」となる。

問題①の解説:2進数から16進数への変換
2進数を16進数に変換する方法
まずは図1の図案を使って2進数を16進数に変換するステップを確認しましょう。2進数を10進数に変換し、その後16進数に変換すると理解しやすくなります。まず、図1の1行目を確認します。4ビットの2進数の各桁には、左から順に8、4、2、1の値があります。1行目は「1000」となり、1×8、0×4、0×2、0×1となるので、合計は8+0+0+0=8です。したがって、1000₂=8₁₀となります。

次に、10進数の8を16進数で表す方法を確認します。以下の表に、10進数と16進数の対応を示します。0~9の数字とA~Fのアルファベットを使い、10~15の値をそれぞれA~Fで表します。 そのため、10進数の8は16進数では8となり、8₁₀=8₁₆と表せます。

3行目は1行目と同じ『1000』です。残る2行目と4行目を変換しましょう。2行目の「1100」は、8+4=12となるため、16進数では「C」です。また、4行目の「1111」は、8+4+2+1=15となるため、16進数では「F」になります。このように、各行の2進数を16進数に変換し、上から順番に並べると、図1の図案は「8C8F」という4桁の16進数で表現できます。

図2の空欄【エ】【オ】を解いてみよう
次に、空欄【エ】【オ】について解説します。問題は「図2の図案を16進法で表現すると、「【エ】【オ】27₁₆」となる。」でしたね。さきほど説明したステップでまずは2進数を10進数にし、その後16進数に変換すればよいです。 図2の上から1行目を見ると、「縫う・縫う・縫う・縫わない」となっていて、これを1と0に置き換えると「1110」です。2進数の1110は、10進数では14となり、16進数では「E」と表現されます。 続く2行目は「縫わない・縫う・縫わない・縫わない」なので「0100」、16進数で「4」です。 3行目は「0010」で「2」、4行目は「0111」で「7」。 上から順番に並べると、図2の図案は「E427」というデータになります。解答欄は「【エ】【オ】27」となっているので、解答は「【エ】がE、【オ】が4」となります。

問題②:図案を変換して組み合わせる
Mさんは、図案の種類を増やすために、4×4マスの一つの図案に対する次のような変換方法を考えた。
【変換方法】
変換A: 図案の各行を2進法で表して桁を逆順にする。
例)図1の上から1行目と3行目の4マスは、いずれも1000₂から0001₂になる。
変換B: 図案の全体を16進法で表して桁を逆順にする。
例)図1の図案全体は、8C8F₍₁₆₎からF8C8₍₁₆₎になる。
変換C: 変換Aを行った後、その結果に対して変換Bを行う。
続いて、小さな図案を組み合わせてより大きな図案を作るため、図3に示すように4×4マスの図案を4枚配置して8×8マスの図案を作ることを考えた。図3中の、変換A、変換B、変換Cはいずれも元の図案に対して変換を行った結果とする。35AD₁₆で表される図案を元の図案として、図3の方法で8×8マスの図案に拡張したとき、その中央の4×4マス(図3の網掛け部分)の図案を16進法で表現すると、【カ】【キ】【ク】【ケ】₁₆となる。

問題②の解説:変換ルールに従って模様を導き出す
図3の空欄【カ】【キ】【ク】【ケ】を解いてみよう
ここで「図を紙に描いて、左右や上下にひっくり返せばよいのでは?」と思う人もいるでしょう。その考え方も正解です。人間は図で考えた方が分かりやすいことがあります。大切なのは、図の操作と、数の並びを入れ替える操作が同じ結果になると理解することです。
一方、コンピュータで同じ処理を行うには、「左右反転」をどのようなデータ操作として実行するか、手順を明確にする必要があります。今回なら、各行の4桁を逆順にすれば左右反転し、4行の順番を逆にすれば上下反転できます。
この問題では、図を描いて考える方法も有効です。図と数字の対応を理解した上で、自分が確かめやすい方法を選んで考えましょう。元の図案「35AD」に変換ルールを適用すると、図のとおり、変換Aは「CA5B」、変換Bは「DA53」、変換Cは「B5AC」になります。

あとはこれらを組み合わせて中央の4×4マスを取り出すと、上から「1001」「0110」「0110」「1001」となります。そして、それぞれを16進数に変換すれば答えが分かります。

答えは「9669」です。したがって、「【カ】が9、【キ】が6、【ク】が6、【ケ】が9」となります。
この問題から学べること
今回の問題では、クロスステッチの図案を0と1の2進数で表し、16進数に変換しました。さらに、図案の左右反転や上下反転を、数字の並びを入れ替える操作として考えました。ここでは、こうしたデータの表現方法を使う理由と、プログラミングにもつながる考え方について確認してみましょう。
なぜ2進数と16進数を使うのか?
コンピュータは内部で情報を0と1の組み合わせとして記録・処理しています。これは、電子回路では電圧の高低など、ON・OFFに相当する2つの状態を区別しやすく、安定して処理できるためです。また、コンピュータでは、こうした2つの状態を利用した論理回路を組み合わせることで、計算を実現しています。この仕組みについては、以前の記事「コンピュータは0、1で計算をする?」で詳しく解説しています。
今回のクロスステッチでは、「縫う・縫わない」をそれぞれ1と0に対応させています。2つの状態を1ビットで表せば、4×4マスの図案を16ビット(2バイト)のデータとして記録できます。このように、必要な情報を少ないデータ量で記録できることも、データの表し方を工夫する利点の一つです。
一方、2進数は桁数が多くなるため、人間にとっては読み書きしにくいという面があります。16進数は、2進数の4桁を1桁で表せるため、長い数字の並びを短く表記できます。今回の図1も、2進数では「1000110010001111」という16桁ですが、16進数なら「8C8F」という4桁で表せます。このように、16進数はコンピュータが扱うデータを人間が確認する際などによく使われます。なお、16進数に変換しても、元の情報量が減るわけではありません。
抽象化とアルゴリズム
今回の問題には、プログラミングにもつながる2つの考え方があります。
1つ目:「抽象化」
クロスステッチの図案から「縫うか、縫わないか」という情報に着目し、0と1で表現しています。糸の色や布の種類などは扱わず、図案を表すために必要な特徴だけを取り出しています。このように、目的に合わせて必要な情報に着目し、それ以外を省いて考えることを抽象化といいます。
2つ目:「アルゴリズム」
図案の左右反転は「各行の0と1の並びを逆にする」、上下反転は「行の順番を逆にする」という具体的な手順で表現できます。このように、目的の処理を実現するための手順を明確にしたものがアルゴリズムです。プログラミングでは、目的に合わせて情報をどのように表すか、どのような手順で処理するかを考えます。
今回の問題は、2進数や16進数の変換方法を確認するとともに、こうしたプログラミングの基本的な考え方を知る機会にもなります。
最後に
「情報Ⅰ」で大切なのは、用語や計算方法を覚えることだけではありません。「何を情報として取り出すか」「どう表せば扱いやすいか」「どんな手順なら同じ結果を出せるか」を考えることです。クロスステッチの問題を通じて、ぜひ解答だけでなく、考え方の筋道にも目を向けてみてください。
プログラミングを通して「自分で考える力」を育てる
今回の問題でも見てきたように、情報を整理し、ルールを考え、試行錯誤しながら答えを導くことは、プログラミングの学習にも通じる大切な考え方です。タイムレスエデュケーションでは、正解を教えるのではなく、答えにたどり着くための考え方を伝えることを大切にしています。子どもたち自身が考え、試行錯誤しながら問題を解決できるようサポートしています。プログラミングに興味がある方や、お子様に考える楽しさを体験してほしいという保護者の方は、ぜひ一度、無料体験レッスンにお越しください。
▶無料体験会はこちらのページからお申し込み頂けます
▶各コースの詳細はこちらをご覧ください
