16進数と数の表現
指導者向けの公開補足
学習本文に加えて、指導の視点・背景・授業での確かめ方を示します。どなたでも読めます。
指導の焦点
16進数を別の計算技術として孤立させず、4ビットを一桁にまとめる表記としてつなげる。A〜Fが文字の飾りではなく値10〜15を表すと確認する。
一歩踏み込んだ背景
先頭の0を省略して数値が同じでも、データの幅が同じとは限らない。色コードなどの固定幅表記と、整数の値の記述を区別すると後の誤解を減らせる。
授業での確かめ方
8ビットを4ビットずつ区切り、2進数と16進数を対応させる。暗記の速度ではなく、区切りの位置と各桁の意味を説明できるかを見取る。
制度・規格等は本文末尾の参考資料も確認してください。
この単元でできるようになること
Section titled “この単元でできるようになること”- 16進数と2進数・10進数を相互に対応させられる。
- 固定長で表せる整数の範囲を求められる。
- 数値の値と、表記や記憶容量の単位を区別できる。
一桁に十六通りの記号を使う
Section titled “一桁に十六通りの記号を使う”10進数は一桁に十通りの数字を使い、十になると桁が上がる。16進数では、十六通りの記号として0から9に続いてA、B、C、D、E、Fを使う。これらの文字は、それぞれ10から15の値を表す。大文字と小文字の違いで値が変わるわけではない。
位の重みは、右から1、16、256と十六倍ずつになる。したがって16進数の3Cは、3 × 16 + 12 = 60で、10進数の60と同じ値だ。表記が変わったのであって、量が変わったわけではない。単に「10」と書くと基数が不明なので、この教材では「16進数の10」のように明記する。
四ビットずつ区切ると読みやすい
Section titled “四ビットずつ区切ると読みやすい”四ビットの組合せは十六通りなので、16進数の一桁と対応する。長いビット列を短く表すのに便利だ。
| 2進数の四桁 | 16進数の一桁 | 10進数での値 |
|---|---|---|
| 0011 | 3 | 3 |
| 1010 | A | 10 |
| 1100 | C | 12 |
| 1111 | F | 15 |
例えば2進数の0011 1100を、四桁ずつ3とCに替えると16進数の3Cになる。逆に16進数のA5は、Aを1010、5を0101として1010 0101になる。右端から四桁ずつ区切ることに注意する。桁が足りない左端は、必要なら先頭に0を補える。
固定された桁数には上限がある
Section titled “固定された桁数には上限がある”符号なし八ビット整数は、二の八乗で二百五十六通りを表せる。0も一つの値なので、範囲は0から255であり、0から256ではない。16進数なら00からFFに対応する。255に1を足した結果を同じ八ビットだけで正しく表すことはできない。
上限を超えるオーバーフローが起きたときの扱いは、装置やプログラムの方式で異なる。必ず自動で桁が増える、必ず0になると決めつけない。負の数を扱う場合には、符号のための表し方も必要だ。よく用いられる二の補数の八ビット表現なら範囲は−128から127になり、同じビット数でも解釈により範囲が変わる。
小数も、いつでも正確に保存できるわけではない
Section titled “小数も、いつでも正確に保存できるわけではない”10進数の0.1のように、10進表記では短い小数でも、2進数では有限の桁で表せないものがある。有限のビット数で近似すると、計算や比較に小さな差が出る場合がある。これは「計算機はいつも間違う」という意味ではなく、数値の表現方式と精度に限りがあるということだ。金額や測定値を扱うときは、必要な精度と丸め方を確認する。
値の大きさと容量の単位を混同しない
Section titled “値の大きさと容量の単位を混同しない”八ビットは一バイトだが、「数値が8」と「八ビットを使う」は別の話だ。容量の十進接頭語では1 kB = 1000 B、二進接頭語では1 KiB = 1024 Bとなる。画面や問題文に示された定義を確認する。大文字のBと小文字のbitを区別し、バイトからビットに直すなら八倍する。
通信速度を比べる場合も単位を省略しない。一秒あたりのビット数と、一秒あたりのバイト数は異なる。保存容量を通信速度で割って所要時間を見積もるときは、両方を同じ単位に直す。実際には通信の管理情報や待ち時間もあるので、計算した時間が必ず実測値になるわけではない。
| 用語 | 意味 |
|---|---|
| 基数 | 位取りで、一桁に用いる値の数 |
| 16進数 | 十六を基数とする表し方 |
| 固定長 | 決めた桁数やビット数で表すこと |
| オーバーフロー | 表現可能な範囲を計算結果が超えること |
- 16進数の6Bを、2進数と10進数の両方で表し、変換の過程を示そう。
- 符号なし十二ビット整数が表せる最大値と、状態の数をそれぞれ求めよう。
- 4 kBと4 KiBは同じ容量か。定義に従ってバイト数で比較しよう。
問1の解答例を見る
6は二進数0110、Bは1011なので、6Bは01101011。十進数では6×16+11=107となる。
問2の解答例を見る
状態の数は2の12乗=4096通り。符号なし整数は0から数えるので、最大値は4096−1=4095となる。
問3の解答例を見る
同じではない。4 kB=4000 B、4 KiB=4×1024=4096 Bなので、4 KiBの方が96 B大きい。
16進数の一桁は四ビットに対応する。表記、ビット数、符号の扱いを区別し、数値には範囲や精度の限界があることを理解して使おう。