🎯 この時間の目標
- なぜ16進数が必要なのかを理解する
- 2進数と16進数の変換ができるようになる
- 日常生活での16進数の活用例を知る
1. なぜ16進数が必要なの?
皆さんは既に2進数を学習しましたね。コンピュータは確かに2進数で動いていますが、実際に私たちが2進数で作業するとどうなるでしょうか?
2進数の問題点を体験してみよう
例えば、255という数値を考えてみます:
- 10進数:255(3桁で表現)
- 2進数:11111111(8桁!)
もしプログラマーがメモリアドレスや色の指定を2進数で書いていたら:
背景色: 11111111 00000000 00000000 (赤色)
文字色: 00000000 11111111 00000000 (緑色)
これでは大変ですよね!
16進数という「翻訳システム」
そこで考え出されたのが16進数です。16進数は2進数の「省略表記法」なのです。
16進数の仕組み
- 2進数4桁 = 16進数1桁
- なぜ4桁? → 2⁴ = 16種類を表現できるから
- 0-9の数字だけでは足りないので、A-Fの文字を使用
| 2進数(4桁) | 16進数(1桁) | 10進数 |
|---|---|---|
| 0000 | 0 | 0 |
| 0001 | 1 | 1 |
| 0010 | 2 | 2 |
| 0011 | 3 | 3 |
| 0100 | 4 | 4 |
| 0101 | 5 | 5 |
| 0110 | 6 | 6 |
| 0111 | 7 | 7 |
| 1000 | 8 | 8 |
| 1001 | 9 | 9 |
| 1010 | A | 10 |
| 1011 | B | 11 |
| 1100 | C | 12 |
| 1101 | D | 13 |
| 1110 | E | 14 |
| 1111 | F | 15 |
変換の簡単さを実感しよう
例:2進数 11111111 を16進数に変換
- 右から4桁ずつに区切る:1111 | 1111
- それぞれを16進数に変換:F | F
- 答え:FF(16)
これで255(10) = 11111111(2) = FF(16)
比較してみると:
- 2進数:11111111(8桁)
- 16進数:FF(2桁)
4分の1の桁数で表現できる!
2. 16進数の表記法
基本的な表記方法
このテキストでは、n進数を x(n) の形で表記します:
- 2進数:1011(2)
- 10進数:183(10)
- 16進数:B7(16), 0xB7, #B7
16進数の様々な表記法
コンピュータ内部で、数字を処理するときに、それが2進数なのか、16進数なのかを区別する必要があります。このため以下のような表記法が採用されています。同じ値でも、使う場面によって表記が異なります:
| 表記法 | 使用場面 | 例 |
|---|---|---|
| B7(16) | 教科書・手書き | 数学、情報科の授業 |
| 0xB7 | プログラミング | C, Java, Python等 |
| #B7 | Webデザイン | HTMLの色指定 |
なぜ0xなの? 数字だけだと何進数か分からないため:
1234← 10進数?16進数?0x1234← 確実に16進数!
具体例で比較 10進数の255を表現すると:
- 教科書:255(10) = FF(16)
- プログラミング:255 = 0xFF
- Webカラー:白色 = #FFFFFF
2. 実生活での16進数活用例
🎨 Webデザインでの色指定
<!-- 2進数で書いていたら... -->
<div style="color: 11111111000000000000000000000000;">赤い文字</div>
<!-- 16進数なら簡潔! -->
<div style="color: #FF0000;">赤い文字</div>
💻 プログラミングでのメモリアドレス
メモリアドレス: 0x7FFE1234 (16進数表記)
同じアドレス : 0111111111111110000100100011010000110100 (2進数)
📱 身近な例
- スマートフォンの設定:WiFiのMACアドレス(例:A4:B2:C5:D8:E1:F3)
- ゲーム:チートコードやアイテムID
- QRコード:内部データの一部
3. 変換練習をしよう
例題1:基本的な変換
問題:2進数 10110111 を16進数に変換しなさい。
解答手順:
- 右から4桁ずつ区切る:1011 | 0111
- それぞれを16進数に変換:
- 1011(2) = 8+2+1 = 11(10) = B(16)
- 0111(2) = 4+2+1 = 7(10) = 7(16)
- 答え:B7(16)
検算: B7(16) = B×16¹ + 7×16⁰ = 11×16 + 7×1 = 176 + 7 = 183(10) 10110111(2) = 128+32+16+4+2+1 = 183(10) ✓
例題2:色コードで実践
問題:Webページで使われる色コード #3A5F を2進数で表現しなさい。
解答手順:
- 16進数を1桁ずつ分解:3 | A | 5 | F
- それぞれを2進数4桁に変換:
- 3(16) = 3(10) = 0011(2)
- A(16) = 10(10) = 1010(2)
- 5(16) = 5(10) = 0101(2)
- F(16) = 15(10) = 1111(2)
- つなげる:0011 1010 0101 1111(2)
答え:3A5F(16) = 0011101001011111(2)
4. 💡 覚えるコツ
よく使うパターンを覚えよう
- F(16) = 1111(2):最大値、よく出る
- A(16) = 1010(2):10を表す、覚えやすい
- C(16) = 1100(2):12を表す、形が特徴的
- 8(16) = 1000(2):2の3乗、シンプル
語呂合わせ例
- A = 10:「エー(A)、テン(10)」
- B = 11:「ビー(B)、イレブン(11)」
- C = 12:「シー(C)、ツェルブ(12)」
🎮 練習問題
Level 1:基礎確認
- 次の2進数を16進数に変換しなさい
- (1) 1010(2)
- (2) 1111(2)
- (3) 10101100(2)
- 次の16進数を2進数に変換しなさい
- (1) E(16)
- (2) 2F(16)
- (3) AC(16)
解答
1. 2進数→16進数変換
(1) 1010(2) → A(16)
- 1010(2) = 8+2 = 10(10) = A(16)
(2) 1111(2) → F(16)
- 1111(2) = 8+4+2+1 = 15(10) = F(16)
(3) 10101100(2) → AC(16)
- 右から4桁ずつ区切る:1010 | 1100
- 1010(2) = A(16), 1100(2) = C(16)
- 答え:AC(16)
2. 16進数→2進数変換
(1) E(16) → 1110(2)
- E(16) = 14(10) = 8+4+2 = 1110(2)
(2) 2F(16) → 00101111(2)
- 2(16) = 0010(2), F(16) = 1111(2)
- 答え:00101111(2)
(3) AC(16) → 10101100(2)
- A(16) = 1010(2), C(16) = 1100(2)
- 答え:10101100(2)
Level 2:応用
- RGB色 #FF8000 は何色だと思いますか?理由も説明しなさい
- なぜゲームの容量は64GB、128GBのような2の累乗が多いのか、16進数の観点から説明しなさい
解答
1. RGB色 #FF8000 の色 答え:オレンジ色
理由:
- FF(16) = 255(10) → 赤成分が最大
- 80(16) = 128(10) → 緑成分が中程度
- 00(16) = 0(10) → 青成分がゼロ
- 赤+緑の組み合わせ → オレンジ系の色
2. ゲーム容量が2の累乗である理由 理由:
- コンピュータは2進数で動作するため
- 64GB = 64×1024³ = 2⁶×(2¹⁰)³ = 2³⁶
- 16進数では10000000000(16)となり、きりの良い数
- メモリ管理やアドレス計算が効率的になる
まとめ
- 16進数は2進数の「省略記法」
- 2進数4桁 = 16進数1桁の関係
- Webデザインやプログラミングで実際に使われている
- 基本パターンを覚えれば変換は簡単!
次回は文字コードについて学習します!

コメント