16進数と8進数の仕組み
16進数は、16で桁上がりする数え方である。 16進数では、15までを1桁で表さなければならないので、 A~Fを数字として使って、 0、 1、2、3、4、5、6、 7、8、9、 A、B、C、D、E、F、 10、 ・・・・・・と数える。 16進数のA~Fは、10 進数の10~15に相当する。 2進数と同様に、 16進数でも10を「いちぜろ」と読む。 5Aなら、 「ごえい」 と読む。
8進数は、8で桁上がりする数え方である。 8進数では、0、 1、2、3、4、5、6、 7, 10, ・・と数える。 10進数の8と9は、 使われない。 2進数や16進数 と同様に、 8進数でも10を 「いちぜろ」、36を 「さんろく」と読む。 2進数の代用表現として16進数と8進数が使われるのは、相互に変換が容易だからである。 16進数の場合は、2進数の4桁が、16進数の1桁に対応する。 2進数の4桁で表せる0000~1111の情報も、 16進数の1桁で せる0~Fの情報も、全部で16通りだからである。 8進数の場合は、2進数の 一桁が8進数の1桁に対応する。 2進数の3桁で表せる000~111の情報も、 8進数の1桁で表せる0~7の情報も、 全部で8通りだからである。
2進数・8進数・16進数の対応表
10進数 | 2進数(Binary) | 8進数(Octal) | 16進数(Hexadecimal) |
---|---|---|---|
0 | 0000 | 0 | 0 |
1 | 0001 | 1 | 1 |
2 | 0010 | 2 | 2 |
3 | 0011 | 3 | 3 |
4 | 0100 | 4 | 4 |
5 | 0101 | 5 | 5 |
6 | 0110 | 6 | 6 |
7 | 0111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
2進数を16進数に変換する
2進数を16進数に変換する手順は、「2進数を下位桁から4桁ずつ区切って、 それぞれを1桁の16進数に変換する」 である。 4桁ずつ区切った2進数を16進数 に変換する手順は、 2進数を10進数に変換する手順と同様に、 「各桁の数字に、 桁の重みを掛けて、集計する」 である。
ただし、 集計結果が10~15になった場合は、それをA~Fに置き換える。
下図は、 01101100という2進数を16進数に変換する手順である。 下位桁から4ビットずつ0110と1100に区切り、 それぞれの部分で桁の重みと、 桁の数字を掛けて集計して、6Cという16進数に変換できた。
区切り | 位置 | 2進数 | 桁の重み | 計算式(重み×数字) | 合計(10進数) | 16進数 |
---|---|---|---|---|---|---|
下位4ビット | 右側 | 1100 | 8, 4, 2, 1 | (8×1) + (4×1) + (2×0) + (1×0) | 12 | C |
上位4ビット | 左側 | 0110 | 8, 4, 2, 1 | (8×0) + (4×1) + (2×1) + (1×0) | 6 | 6 |
4桁の2進数の桁の重みは、下位桁から順に1、2、4、8である。 これを「いち・にい・よん・ぱあ」と覚えておこう。 例えば、 0110は、 「いち・にい・よん・ぱあ」 の 「よん」 と 「にい」 の桁が1なので、 4+2=6になる。 1100は、「いち・にい・よん・ぱあ」 の 「ぱあ」 と 「よん」 の桁が1なので、8+4=12になる。 10進数の12は、 10から数えて10→11→12なので、 16進数をA→B→Cと指折り数えて、 Cであることがわかる。
2進数を8進数に変換する
2進数を8進数に変換する手順は、 「2進数を下位桁から3桁ずつ区切って、それぞれを1桁の8進数に変換する」 である。 3桁ずつ区切った2進数を8進数に変換する手順は、2進数を10進数に変換する手順と同様に、「各桁の数字に、 桁の重みを掛けて、集計する」 である。 3桁の2進数なので、集計した結果0~7になる。
下図は、110111011という2進数を8進数に変換する手順である。 下位桁から3ビットずつ110と111と011に区切り、 それぞれの部分で桁の重み (いち・にい・よん)と、桁の数字を掛けて集計して、673という8進数に変換できた。
区切り | 位置 | 2進数 | 桁の重み | 計算式(重み×数字) | 合計(10進数) | 8進数 |
---|---|---|---|---|---|---|
下位3ビット | 右側 | 110 | 4, 2, 1 | (4×1) + (2×1) + (1×0) | 6 | 6 |
中位3ビット | 真ん中 | 111 | 4, 2, 1 | (4×1) + (2×1) + (1×1) | 7 | 7 |
上位3ビット | 左側 | 011 | 4, 2, 1 | (4×0) + (2×1) + (1×1) | 3 | 3 |
(参考)情報処理教科書 出るとこだけ!基本情報技術者[科目A][科目B]2025年版
コメント