「16進数」は、16ごとに桁が上がる数え方です。「0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F」と桁が1つ上がります。
16進数では「A」は10、「B」は11、「C」は12、「D」は13、「E」は14、「F」は15を表します。
10進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16進数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
人間は10進数を、コンピュータは2進数を使います。プログラミングでは、このそれぞれの立場で都合のよい16進数を使います。
16進数の1桁は、2進数の4桁(4bit)で表せます。
16進数 | 2進数 |
---|---|
F | 1111 |
FF | 1111 1111 |
ここで、10に近い8ではなく16を使うのはなぜかと疑問を持つかもしれません。
8進数ではなく16進数が採用されているのは、8(3bitで桁が上がる)よりも16(4bitで桁が上がる)方がコンピュータには扱いやすいからです。
コンピュータでは、数値はメモリ上に記録されます。そして、数値に使っているメモリーのサイズを、別の場所に記録します。この際、記録用に使われる数字も、2進数で管理されます。
2進数(2を基準とした数え方)では、2で割り切れない3よりも、2で割り切れる4の方が都合がよいです。そのため、8進数よりも16進数の方が、コンピュータにとって都合がよい数字になります。
コンピュータの世界では「byte」という単位がよく出てきます。
プログラムを書く場合、byteは8bit(2進数で8桁の値、2の8乗=256)になります。
1byteで表現可能な数値を10進数で表すと「0~255」になります。
1byteで表現可能な数値を2進数で表すと「0~11111111」になります。
1byteで表現可能な数値を16進数で表すと「0~FF」になります。
通常、1byteは2桁の16進数で表現されます(例:3F、FF)。