CodeArc FE 学習アドベンチャー

基礎理論 / 解法

第5話 16進メモリの宝石箱

ビット倉庫の奥に開いた通路は、まるで宝石箱の中のようだった。壁には小さな札が並び、そこには0と1だけでなく、A、B、C、D、E、Fの文字が刻まれていた。 ナナは足を止めた。 「これ、数字なの? 文字なの?」 アイリが答える。 「16進数。0から9までの数字だけでは足りないから、10から15をAから…

会話欄の余白を押すと次のセリフへ進みます。

会話

1 / 11

Recap

ここまでの3行

  1. 第2話 逆読みレーダー 番ゲートを開いた直後、通信塔の上部から細い光が空へ伸びた。青く復旧したはずの信号は、街の上空で一度だけ震え、次の表示へと変わった。 ナナは眉を寄せる。 「さっきは13を2進数にしたよね。今度…
  2. 第3話 桁上がりの火花 逆読みレーダーが復旧した翌朝、ビットの街の北区画で小さな爆発が起きた。ナナが駆けつけると、そこには銀色の加算装置があった。装置の上には2本の入力ケーブルが伸びている。 中央には赤い警告が点滅…
  3. 第4話 8ビット倉庫 加算装置の火花が収まったころ、街の東側にある記憶倉庫から緊急信号が届いた。 倉庫の扉には、赤い文字が走っている。 ナナたちが駆けつけると、倉庫の中には小さな箱が無数に並んでいた。箱の一つ一つ…

数字の図解

ニブル変換盤

目標
ニブル変換盤 ┌──────┬────┐ │ 2進4bit │ 16進 │ ├──────┼────┤ │ 1010 │ A │ │ 1011 │ B │ │ 1100 │ C │ │ 11…
読む順
ニブル変換盤 → 16進宝石カード → ┌──────┬────┐ → │ 2進4bit │ 16進 │
根拠
答えは ア。検算まで同じ図で戻します。

学習テーマAnalysis Theme

この話で学ぶのは、2進数と16進数の相互変換です。 16進数は、長い2進数を短く表すために使われます。メモリ、アドレス、文字コード、ハッシュ値、色コードなどで頻繁に出ます。 初学者がつまずくのは、A〜Fの対応、右から4桁で区切ること、左側の0補完、16進1桁を4bitに戻すことです。

基礎理論 / 解法

ビット倉庫の奥に開いた通路は、まるで宝石箱の中のようだった。壁には小さな札が並び、そこには0と1だけでなく、A、B、C、D、E、Fの文字が刻まれていた。 ナナは足を止めた。 「これ、数字なの? 文字なの?」 アイリが答える。 「16進数。0から9までの数字だけでは足りないから、10から15をAから…

学習導入 解き方の手順 解法手順 基礎理論

解説動画Lesson Feed

Chapter 1 Episode 5 lesson explainer
Scene Board ニブル変換盤 ビット倉庫の奥に開いた通路は、まるで宝石箱の中のようだった。壁には小さな札が並び、そこには0と1だけでなく、A、B、C、D、E、Fの文字が刻まれていた。 ナナは足を止めた。 「これ、数字なの…

ナナ / 困惑

これ、数字なの? 文字なの?

ナレーター

AからFの宝石

宝石箱の札にはAからFが並ぶ。16進数では10から15を文字で表す。

アイリ / 決意

16進数。0から9までの数字だけでは足りないから、10から15をAからFで表す

ナナ / 困惑

Fが15……。じゃあ、16は?

ナナ / 決意

16進数では、16は `10₁₆` になる

ナレーター

16は10₁₆

16進数でも桁上がりがある。10₁₆ は10進数の10ではなく、16を表す。

アイリ / 警戒

違う。桁の重みは右端が基準。16進数にするときも右から4桁

Bit / 決意

不足している左側は0で補います

ナナ / 決意

これも、分かる。左から切りたくなる。でも右からなんだ

ナナ / 決意

3は0011。4bitにしないといけないんだね

ナレーター

右から4bit

2進数を16進数へ直すときは右から4bitずつ区切る。不足した左側だけ0で補う。

目標

この話でできるようになること

12進数を16進数へ変換できる

216進数を2進数へ戻せる

32進数を右から4桁ずつ区切れる

4A〜Fを10〜15に対応させられる

516進数を4bitずつ2進数へ戻せる

616進数の選択肢を2進数に戻して検算できる

場面ログ 会話で進んだ場面を確認する
場面 1

ビット倉庫の奥に開いた通路は、まるで宝石箱の中のようだった。壁には小さな札が並び、…

8ビット倉庫の奥に開いた通路は、まるで宝石箱の中のようだった。壁には小さな札が並び、そこには0と1だけでなく、A、B、C、D、E、Fの文字が刻まれていた。

A3
2D
FF
0F

ナナは足を止めた。

「これ、数字なの? 文字なの?」

アイリが答える。

「16進数。0から9までの数字だけでは足りないから、10から15をAからFで表す」

Bitが壁の札を照らした。

A=10
B=11
C=12
D=13
E=14
F=15

ナナは顔をしかめた。

「Fが15……。じゃあ、16は?」

「16進数では、16は 10₁₆ になる」

その瞬間、宝石箱の中央に問題が浮かんだ。

2進数 10111100 を16進数に変換せよ

Traceが紙テープを出した。

右から4桁ずつ区切る

ナナは2進数を区切った。

1011 1100

左の 1011 は、

8 + 2 + 1 = 11 = B

右の 1100 は、

8 + 4 = 12 = C

だから、

10111100₂ = BC₁₆

宝石の一つが青く光った。 だが、次の札が現れる。

2進数 101101 を16進数に変換せよ

ナナは左から区切ろうとした。

1011 01

その瞬間、黒い影が耳元で囁いた。

> 左から読めばいい。見たまま切れ。

アイリが即座に止めた。

「違う。桁の重みは右端が基準。16進数にするときも右から4桁」

ナナは区切り直した。

10 1101

左側が2桁しかない。Bitが言う。

「不足している左側は0で補います」

0010 1101
0010 = 2
1101 = D

したがって、

101101₂ = 2D₁₆

宝石箱の奥で、古いログが赤く光った。

誤答ログ:
101101₂ = B1
理由:左から4桁で区切った

ナナはログを見て、静かに頷いた。

「これも、分かる。左から切りたくなる。でも右からなんだ」

最後に、アイリが逆変換を出した。

A3₁₆ を2進数に戻せ

ナナは対応表を見た。

A = 1010
3 = 0011

だから、

A3₁₆ = 10100011₂

「3は0011。4bitにしないといけないんだね」

アイリは微笑んだ。

「そう。16進1桁は、必ず4bit」

宝石箱のすべての札が整列した。 だが、奥の棚には 0x10 と書かれた札が残っている。

ナナはそれを見てつぶやいた。

「また10……でも今度は、普通の10じゃない気がする」

Bitが頷いた。

「次は、基数表記の迷路です」

本文これ、数字なの? 文字なの?

本文16進数。0から9までの数字だけでは足りないから、10から15をAからFで表す

本文Fが15……。じゃあ、16は?

Narrator

AからFの宝石

宝石箱の札にはAからFが並ぶ。16進数では10から15を文字で表す。

Narrator

16は10₁₆

16進数でも桁上がりがある。10₁₆ は10進数の10ではなく、16を表す。

Narrator

右から4bit

2進数を16進数へ直すときは右から4bitずつ区切る。不足した左側だけ0で補う。

解法の要点

本当に必要な手順、例題、誤答の直し方だけ確認する

導入

学習導入

この話で学ぶのは、2進数と16進数の相互変換です。 16進数は、長い2進数を短く表すために使われます。メモリ、アドレス、文字コード、ハッシュ値、色コードなどで頻繁に出ます。

初学者がつまずくのは、A〜Fの対応、右から4桁で区切ること、左側の0補完、16進1桁を4bitに戻すことです。

解法

解き方の手順

16進数は、0〜9とA〜Fを使って数を表します。

A=10, B=11, C=12, D=13, E=14, F=15

2進数4桁で表せる範囲は、

0000₂ = 0
1111₂ = 15

つまり、2進数4桁は16進数1桁に対応します。 この4bitのまとまりを、ニブルと呼ぶことがあります。

2進数 → 16進数

右から4桁ずつ区切る。

10111100₂
= 1011 1100
= B C
= BC₁₆

左側が足りなければ0で補う。

101101₂
= 0010 1101
= 2D₁₆

16進数 → 2進数

16進数1桁を必ず4bitへ戻す。

A3₁₆
A = 1010
3 = 0011
A3₁₆ = 10100011₂
手順

解法手順

  • 2進数を右から4桁ずつ区切る
  • 左端が4桁未満なら0を補う
  • 各4bitを10進数に直す
  • 10〜15をA〜Fに変換する
  • 16進数を連結する
  • 必要なら16進数を2進数へ戻して検算する
例題

例題

問題

2進数 10111100₂ を16進数で表したものはどれか。

選択肢
BC₁₆
B6₁₆
CB₁₆
5C₁₆

解説

10111100₂ = 1011 1100
1011 = 11 = B
1100 = 12 = C

よって BC₁₆

答え

検算

B = 1011
C = 1100
BC₁₆ = 10111100₂

一致。

なぜ他の選択肢が違うか

選択肢2進数に戻す不正解理由
ア BC1011 1100正しい
イ B61011 0110後半4bitが違う
ウ CB1100 1011前後が逆
エ 5C0101 1100前半4bitが違う

答え: ア

修復

誤答パターン

  • A〜Fの対応を間違える
  • A=10から始まる。F=15。
  • 左から4桁ずつ区切る
  • 右端が桁の基準。右から区切る。
  • 左側の不足分を0で補わない
  • 4bit未満なら左に0を足す。
Exam

過去問接続

科目Aで直接効きます。 典型問題は、2進数を16進数へ、16進数を2進数へ、または16進数を10進数へ変換する形式です。選択肢は前後逆、1桁変換ミス、0補完忘れを狙います。

図で確認

試験中に自分で再現できる形へ落とし込む

binary

ニブル変換盤

使う重みをONにして、ONの合計が目標値になるか確認します。

例題の答え

手を動かす

読み終える前に、短い演習で理解を固定する

演習 1

`1111₂` を16進数にせよ。

  1. 問題文の条件を写す
  2. 図・表・重み・真理値のどれで読むか決める
  3. 答えを戻して検算する
演習 2

`1010₂` を16進数にせよ。

  1. 問題文の条件を写す
  2. 図・表・重み・真理値のどれで読むか決める
  3. 答えを戻して検算する
演習 3

`1101₂` を16進数にせよ。

  1. 問題文の条件を写す
  2. 図・表・重み・真理値のどれで読むか決める
  3. 答えを戻して検算する
演習 4

`10111100₂` を16進数にせよ。

  1. 問題文の条件を写す
  2. 図・表・重み・真理値のどれで読むか決める
  3. 答えを戻して検算する

旅のメモ

次に残すメモ

12進数を右から4桁ずつ区切れる

2A〜Fを10〜15に対応させられる

32進数を16進数へ変換できる

科目Aで直接効きます。 典型問題は、2進数を16進数へ、16進数を2進数へ、または16進数を10進数へ変換する形式です。選択肢は前後逆、1桁変換ミス、0補完忘れを狙います。

確認

この話で持ち帰ること

12進数を右から4桁ずつ区切れる

2A〜Fを10〜15に対応させられる

32進数を16進数へ変換できる

416進数を4bitずつ2進数へ戻せる

516進数の選択肢を2進数に戻して検算できる