【基本情報技術者試験対策#2】8進数と16進数

資格,基本情報技術者

今回も、基本情報技術者試験の対策記事を書いていこうと思います。

今回のテーマは「8進数と16進数」です。
前回は2進数を勉強しましたので、前回の記事から読みたい方はこちらです。

【基本情報技術者試験対策#1】2進数と10進数への変換

8進数、16進数とは

1桁上がるごとに、2の累乗分のデータ量を表せるのが2進数なら、
8の累乗分のデータ量を表せるのが8進数、
16の累乗分のデータ量を表せるのが16進数です。

つまり、1桁の8進数は「0」~「7」の8通り(81)のデータを、
1桁の16進数であれば「0」~「F」の16通り(161)のデータ量を表すことができます。

16進数で「F」というのは「15」のことです。
これは、1桁で2桁分の数字を表現するためにアルファベットが使われているからであり、
「10」が「A」、「11」が「B」のようになっているためです。

なぜ、8進数や16進数が使われているのか

人間は10進数に慣れており、コンピュータは2進数で動作します。
では、8進数や16進数の役目は何なのでしょうか。

これは恐らくですが「人間が読みやすいように」考え出されたのではないかと思います。

例えば8進数であれば、1桁で8(23)通りの情報量を表せますし、
16進数であれば、16(24)通りの情報量を表すことができます。
これを2進数のみで書くと桁数が膨大になってしまいます。

コンピュータにとっては読みやすい2進数でも、人間にとっては「1」「0」の羅列です。
これを人間にとって読みやすいように生み出されたのが8進数や16進数ではないかと思うのです。

特に2進数1桁を「1ビット」と呼びます。
通貨の「円」や重さの「グラム」と同じで、情報量の単位だと思えば良いです。

そして8ビットを「1バイト」と呼びます。
8ビットというのは2進数で表現すると28の情報量です。

1バイトを2進数で書くと8桁書かないといけませんが、例えば16進数であれば2桁で書くことができます。

桁数が少ないほうが人間にとって読みやすい

2進数から8進数・16進数への変換

8進数の1桁は23通りの情報量を表すので、2進数の3桁が8進数の1桁になります。

ですので、2進数から8進数に変換する場合は3桁ずつ変換していくことになります。

1010.1101を8進数変換すると12.64になる

同様に16進数の1桁は24通りの情報量を表すので、2進数の4桁が16進数の1桁になります。

101010.110101を16進数変換すると2A.D4になる

逆に、8進数から2進数に変換する場合は1桁を2進数3桁ずつに変換していきます。
また16進数から2進数に変換する場合は1桁を2進数4桁ずつに変換していきます。

この辺りは10進数から2進数への変換が分かっていればできそうですね。

次回は2の補数と負数の表し方について勉強していきましょう。