解説
プログラムでは、2進数以外にも、8進数や16進数といった数え方も使います。ここでは、プログラミングでよく使う16進数を紹介します。
2進数は2ごとに桁が上がる数え方でした。10進数は10ごとに桁が上がる数え方でした。同じように、16進数は16ごとに桁が上がる数え方です。
16進数では、「0 1 2 3 4 5 6 7 8 9 A B C D E F」の16種類の文字を使って数を表わします。10以上の数字は、アルファベットの「A~F」を使って表現します。Aは10、Bは11、Cは12、Dは13、Eは14、Fは15になります。
この16進数は2進数の4桁で表現できます。
4 3 2 1 ―――――― 0 0 0 0 - 0 0 0 0 1 - 1 0 0 1 0 - 2 0 0 1 1 - 3 0 1 0 0 - 4 0 1 0 1 - 5 0 1 1 0 - 6 0 1 1 1 - 7 1 0 0 0 - 8 1 0 0 1 - 9 1 0 1 0 - A(10) 1 0 1 1 - B(11) 1 1 0 0 - C(12) 1 1 0 1 - D(13) 1 1 1 0 - E(14) 1 1 1 1 - F(15)
この2進数の1つの桁のことを「ビット」と呼びます。16進数の1桁は4ビットで表わせます。同様に、8ビットの領域があれば16進数で2桁分の数字を、12ビットの領域があれば16進数で3桁分の数字を利用できます。
| | | | |凸 凸 凸 凸|凸 凸 凸 凸|凸 凸 凸 凸| | 16進数の | 16進数の | 16進数の | | 3桁目 | 2桁目 | 1桁目 | | | | |
プログラムでは、この16進数で、数値を見ていく場面がよく発生します。16進数がどういった物なのか、覚えておくとよいでしょう。
サンプル
16進数の処理を、JavaScriptで簡単に書いてみます。
<html>
<head>
<title>「16進数」のサンプル</title>
</head>
<body>
<pre><script type="text/javascript">
document.writeln("10進数の0~32を2進数と16進数で表わす\n");
for (var i = 0; i <= 32; i ++) {
document.writeln(
form(i, 3)
+ " - "
+ form(i.toString(2), 6)
+ " - "
+ form(i.toString(16), 2)
);
}
// 桁揃え用関数
function form(s, n) {
if (String(s).length < n) {
s = form(" " + s, n);
}
return s;
}
</script></pre>
</body>
</html>
10進数の0~32を2進数と16進数で表わす 0 : 0 : 0 1 : 1 : 1 2 : 10 : 2 3 : 11 : 3 4 : 100 : 4 5 : 101 : 5 6 : 110 : 6 7 : 111 : 7 8 : 1000 : 8 9 : 1001 : 9 10 : 1010 : a 11 : 1011 : b 12 : 1100 : c 13 : 1101 : d 14 : 1110 : e 15 : 1111 : f 16 : 10000 : 10 17 : 10001 : 11 18 : 10010 : 12 19 : 10011 : 13 20 : 10100 : 14 21 : 10101 : 15 22 : 10110 : 16 23 : 10111 : 17 24 : 11000 : 18 25 : 11001 : 19 26 : 11010 : 1a 27 : 11011 : 1b 28 : 11100 : 1c 29 : 11101 : 1d 30 : 11110 : 1e 31 : 11111 : 1f 32 : 100000 : 20
