コンテンツにスキップ

16進数と数の表現

指導者向けの公開補足

学習本文に加えて、指導の視点・背景・授業での確かめ方を示します。どなたでも読めます。

指導の焦点

16進数を別の計算技術として孤立させず、4ビットを一桁にまとめる表記としてつなげる。A〜Fが文字の飾りではなく値10〜15を表すと確認する。

一歩踏み込んだ背景

先頭の0を省略して数値が同じでも、データの幅が同じとは限らない。色コードなどの固定幅表記と、整数の値の記述を区別すると後の誤解を減らせる。

授業での確かめ方

8ビットを4ビットずつ区切り、2進数と16進数を対応させる。暗記の速度ではなく、区切りの位置と各桁の意味を説明できるかを見取る。

制度・規格等は本文末尾の参考資料も確認してください。

この単元でできるようになること

Section titled “この単元でできるようになること”
  • 16進数と2進数・10進数を相互に対応させられる。
  • 固定長で表せる整数の範囲を求められる。
  • 数値の値と、表記や記憶容量の単位を区別できる。

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進数 十六を基数とする表し方
固定長 決めた桁数やビット数で表すこと
オーバーフロー 表現可能な範囲を計算結果が超えること
  1. 16進数の6Bを、2進数と10進数の両方で表し、変換の過程を示そう。
  2. 符号なし十二ビット整数が表せる最大値と、状態の数をそれぞれ求めよう。
  3. 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進数の一桁は四ビットに対応する。表記、ビット数、符号の扱いを区別し、数値には範囲や精度の限界があることを理解して使おう。