基本情報技術者試験で問われる2進数と16進数の算出方法とは?

更新日:2021年8月20日

数字がたくさん書いてある画面

私たちは日常生活で10進数を利用して生活していますが、すべてが0と1で構成されているコンピュータの世界では、2進数や16進数のように、2の倍数の桁上がりを利用したほうが効率的に数値情報を扱うことができます。

基本情報技術者試験においても、10進数の数値を2進数や16進数に変換するスキルが求められます。この記事では、2進数と16進数などのN進数の概要に加え、10進数との変換方法について解説します。

目次

N進数とは

N進数とは、Nに当てはまる数ごとに桁が上がっていくように数値を扱う方法のことです。

例えば、3進数であれば3の度に桁が上がり、8進数であれば8の度に桁が上がります。10進数で「15」と表記される数を8進数で表すと「17」となりますし、2進数で表すと「1111」となります。

私たちは普段の生活で10の度に桁が上がる10進数を利用していますが、上述の通りコンピュータの世界では10進数よりも2の度に桁が上がる2進数や16の度に桁が上がる16進数などの利用が適しています。

基本的にコンピュータの内部処理では2進数や16進数のほうが扱いやすいため、10進数はあまり利用されません。なお、16進数で10以上の値を扱う際には、英語のアルファベットを利用します。

例えば、10はAとあらわし、11はB、12はC、13はDというように値と記号が対応します。例えば、16進数で「30」を表す場合は、「1D」という表記となります。

コンピュータ内部でのデータの扱い方

コンピュータ内部では電荷の有無により0と1が表現されており、コンピュータで扱うすべての数値は物理的には0と1で表されています。

コンピュータの世界では、この0と1の組み合わせを1ビットといいます。コンピュータ上で扱うデータの最小単位は1ビットとなります。

ただし、0と1だけでは数値として扱いにくいため、コンピュータ上では0と1を8つ合わせて16進数として扱うことが多いです。これを1バイトといいます。1バイトで扱える数値域は、「00000000」~「11111111」までとなり、これは16進数では「00」~「FF」、10進数では「0」~「256」までの範囲に相当します。

よく、ハードディスクやメモリなどの大きさを表す単位として2ギガバイトや100メガバイトなどと表記されているのは、このバイトが基本単位となっているものです。

N進数の変換処理

基本情報技術者試験では、2進数から10進数といったように、N進数の変換を行う問題が出題されます。以下では、N進数の変換処理方法について、特に基本情報技術者試験で問われるものについて解説します。

2進数から10進数への変換

まず、2進数から10進数の変換方法を紹介します。

まず、2進数の各桁とその値が対応するように表で整理します。例えば、「11010011」という2進数であれば、以下の通りとします。

2進数

次に、2進数の各桁と値をそれぞれ掛け算していき、その合計を算出します。

合計を算出

結果として、2進数の「11010011」は10進数で211であることが分かります。

10進数から2進数への変換

反対に、10進数から2進数への変換方法を紹介します。

まず、10進数の値を2で割ります。さらに、その際の答えを2で割ることを繰り返していきます。そして、割り算の各計算結果の余りを記録していきます。

例えば10進数の211を2進数に変換する場合は以下の通りです。

10進数から2進数

そして、割り算の余りを逆順に並び変えると、2進数となります。上記の例でいえば、「11010011」が211を2進数に変換した結果となります。

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

2進数から16進数の変換方法は以下のとおりです。2進数から16進数の変換は比較的簡単で、2進数を4桁ずつ区切って変換することで16進数にすることができます。

例えば、「11010011」という2進数を16進数にするケースを想定します。まず、2進数を4桁ごとに区切ります。そうすると、「11010011」は「1101」と「0011」に分割されます。

次に、それぞれの4桁の数値を桁ごとに乗算し、10進数で合計を算出します。

一つ目の4桁の数値二つ目の4桁の数値

最後に、それぞれ計算された10進数の値を16進数に変換すれば、完成です。

2進数で「1101」と表記された数は、10進数では13となり、16進数ではDとなります。また、2進数で「0011」と表記された値は、10進数では3となり、16進数でも変わらず3となります。最終的に、「11010011」は16進数で「D3」と表記されることになります。

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

反対に、16進数から2進数の変換方法は以下のとおりです。16進数の1桁を4桁の2進数に変換していくことで、16進数を2進数に変換することができます。

例えば、16進数で「D3」を2進数に変換するケースを想定します。まず、「D」を4桁の2進数にします。Dは10進数で13ですので、これを2進数に変換するためには以下の通りの計算を行います。

2進数に変換

この結果、まず16進数の「D」は2進数の「1101」に変換できることが分かります。

同様に、16進数の「3」を2進数に変換します。以下の通り計算を行うことで、「3」は2進数の「0011」と変換できることが分かります。

2進数に変換

これらをまとめると、16進数の「D3」は、2進数の「11010011」と変換できることになります。

まとめ

この記事では、基本情報技術者試験を受けようとされている方に向けて、N進数の概要と、10進数から2進数や16進数に変換する方法に関する内容の解説を行いました。普段の生活では2進数や16進数を扱うことはまずありませんので、基本情報技術者試験で問われるN進数の変換問題に躓く方は多いのではないでしょうか。

N進数の変換はやり方をパターンとして覚えてしまえば、そこまで難しいものではありません。本記事で紹介したパターンを押さえておくことで、N進数の変換問題はほぼ問題なく対応できるようになるでしょう。

基本情報技術者コラム一覧へ戻る