8進法と16進法

2進法の欠点として、ケタ数が多くなってしまうことがあげられる。 これでは、書いたり覚えたりするのに不便なので、8進法や16進法が2進法のかわりに使われることがよくある。 8進法や16進法で書かれた数は、容易に2進法に直せる。 従って、2進法のかわりに8進法や16進法で書いておいて、必要なら簡単な手順で2進法に直す、ということがよく行なわれる。

8進:
各ケタに0〜7を使う。7の次はケタ上がり。
8進では 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, のように数の表記が進む。
1番下のケタは 1 のケタ。2番目のケタは 8 のケタ、3番目のケタは 8*8 = 64 のケタ、 4番目のケタは 8 の3乗 = 512 のケタ…
16進:
各ケタに0〜9,A,B,C,D,E,F を使う。F の次にケタ上がり。
大文字の A〜F の代わりに、小文字のa〜fを使うこともよくある。
以下では大文字で書く。
1番下のケタは 1 のケタ。2番目のケタは 16 のケタ、3番目のケタは 16*16 = 256 のケタ、 4番目のケタは 16 の3乗 = 4096 のケタ…
            A ⇔ 10(10進)
            B ⇔ 11(10進)
            C ⇔ 12(10進)
            D ⇔ 13(10進)
            E ⇔ 14(10進)
            F ⇔ 15(10進)
     10(16進) ⇔ 16(10進)
     11(16進) ⇔ 17(10進)
     …
     1F(16進) ⇔ 31(10進)
     20(16進) ⇔ 32(10進)
     …
     FF(16進) ⇔ 255(10進)
    100(16進) ⇔ 256(10進)		(⇔ 100000000(2進))

注: 8進や16進でも2進の場合と同様, 10 は「イチゼロ」と読んで、「ジュウ」 とは読みません。各ケタに書かれた文字をそのまま上から順に読むだけです。

演習

1から32までの数を順に8進法と16進法で書きなさい。 下記の表の続きを書く形で、紙の上に書くこと。 下の表には比較のため2進表記も書いてあるので、2進表記も紙に書き写して、8進・16進と比較してみること。

        10進法:   1     2    3    4    5    6    7    8    9   10
        2進法:    1    10   11  100  101  110  111 1000 1001 1010
        8進法:    1     2    3    4    5    6    7   10   11   12
        16進法:   1     2    3    4    5    6    7    8    9    A
        
        10進法:   11   12   13   14   15    16    17    18    19    20
        2進法:  1011 1100 1101 1110 1111 10000 10001 10010 10011 10100
        8進法:
        16進法:
        
        10進法:    21    22    23    24    25    26    27    28    29    30
        2進法:  10101 10110 10111 11000 11001 11010 11011 11100 11101 11110
        8進法:
        16進法:
        
        10進法:    31     32
        2進法:  11111 100000
        8進法:
        16進法:

2進から8進への変換

1101 (2進) を例にとって2進表記から8進表記への変換を説明しよう。

2進から8進に変換するには、2進数を下から3ケタずつ切る。3ケタごとに変換してその結果を並べる。

                1   101
                ↓   ↓
                1    5
                8進の15 (イチゴ)…答

なぜ3ケタずつ切るのかというと、8が2の3乗だから。 つまり、8(10進) = 1000 (2進) なので、2進数を8倍すると、ケタが3ケタ左 にずれるし、8で割るとケタが3ケタ右にずれるから。

注意: 必ず下から3ケタずつ切って下さい。上から切ってはいけません。

演習

2進法の 11100111010 を8進に変換して下さい。(紙の上で計算すること。)

8進から2進への変換

例として、532(8進) を2進表記に変換してみる。

8進表記の各ケタに表れている数 5、3、2をそれぞれ2進に変換する。 ただし、それぞれ3ケタ使って表す。

これらを、左から順に並べて書く。

        101 011 010

実際には、くっつけて書く。

        101011010

これが、求める2進表現。

演習

8進法の2506を2進に変換して下さい。(紙の上で計算すること。) 左端のムダな0は最終結果からは省いて下さい。

2進から16進への変換

例として 1011001001(2進) を16進表記に変換してみよう。

2進表記を下から4ケタずつ切る:

                10   1100   1001
                 ↓    ↓     ↓  (一旦、10進にしてみる)
           (10進の)2  12      9
                 ↓    ↓     ↓  (16進表記にするため、必要なら、AからF を使う)
                 2     C      9	  (C(16進) = 12(10進))
                16進の2C9…答

注意: 必ず下から4ケタずつ切って下さい。上から切ってはいけません。

演習

2進法の 1111001101011011111 を16進に変換して下さい。(紙の上で計算すること。)

16進から2進への変換

例として、3DA(16進)を2進表記に変換してみる。

16進の各ケタの数 3、D、A、をそれぞれ2進に変換する。ただし、それぞれ4ケタ使って表す。

これらを左から順に並べると、

        001111011010

この場合は頭の0は要らないから、

          1111011010

でよい。

ただし、 D3A(16進) を 2進に変換する場合、 各ケタを2進に直した後で順に並べると、

        110100111010

となる。この場合、途中でおぎなった0は、省略できない。 つまり、一般に、途中でおぎなった0は省略できない。

演習

16進法の 3B7D5 を2進表記に変換して下さい。(紙の上で計算すること。)