基数変換の解説(基本情報技術者シラバス用語)

基数変換の解説(基本情報技術者シラバス用語)
目次

基数変換とは


基数変換(きすうへんかん)とは、ある数値の表現方法(進数)を、別の表現方法へ変換する作業のことです。「基数」とは、数値を表すときに基準となる数のことで、10進数なら基数は「10」、2進数なら基数は「2」となります。コンピュータはデータをすべて2進数で処理しますが、人間は10進数や16進数のほうが理解しやすいため、コンピュータと人間の間でスムーズにデータをやり取りするためには、この基数変換が欠かせません。たとえば、人間が入力した10進数をコンピュータが理解できる2進数に直したり、逆にコンピュータの計算結果を人間に分かりやすい10進数に戻したりする際に、裏側でこの変換が行われています。

具体例

10進数の「9」を2進数に変換(基数変換)する手順は以下のようになります。

9 を 2 で割り、余りを記録します。
9 ÷ 2 = 4 余り 1
4 ÷ 2 = 2 余り 0
2 ÷ 2 = 1 余り 0
1 ÷ 2 = 0 余り 1
下から順に余りを並べると「1001」になります。

このように、元の数値を変換先の基数で割り続け、その余りを逆から並べることで、10進数から2進数への基数変換を行うことができます。

もう少し詳しく

基数変換の仕組みを深く理解するためには、「桁の重み(位取り記数法)」という概念を意識することが重要です。私たちが普段使う10進数の「352」という数字は、「100の位(10の2乗)が3つ」、「10の位(10の1乗)が5つ」、「1の位(10の0乗)が2つ」集まったものとして理解しています。これと全く同じルールが、他の進数にも適用されます。
例えば、2進数の「1011」を10進数に戻す場合を考えてみましょう。右から順に、1の位(2の0乗)、2の位(2の1乗)、4の位(2の2乗)、8の位(2の3乗)となります。それぞれの桁の数字にこの「重み」を掛け算して足し合わせることで、10進数への変換が可能です。具体的には「(1 × 8) + (0 × 4) + (1 × 2) + (1 × 1) = 11」となります。この「重みを掛けて足す」というアプローチは、2進数に限らず、8進数や16進数から10進数へ変換する際にも共通して使える万能な方法です。
さらに、少数の基数変換もシステム開発では重要になります。10進数の少数を2進数に変換する場合は、整数部分とは逆のアプローチを取り、「変換先の基数(この場合は2)を掛け続け、整数部分として溢れ出た数字を上から順に並べる」という手法を用います。ただし、10進数では有限の少数(例えば0.1)であっても、2進数に変換すると無限に続く少数(循環小数)になってしまうことがあり、これがコンピュータ特有の「計算誤差(丸め誤差など)」を引き起こす根本的な原因となっています。

試験でのポイント

資格試験では、基数変換はまさに「計算問題の登竜門」であり、必ず得点源にしておきたい分野です。出題パターンとしては、整数の変換だけでなく、少数を含む数値の変換(例:10進数の「5.75」を2進数に変換せよ)がよく狙われます。少数の変換ルール(2を掛けて整数部分を取り出す)を忘れてしまいがちなので、試験前に必ず復習しておきましょう。
また、2進数、8進数、16進数同士の相互変換は、10進数を経由せずに直接行うテクニックが非常に有効です。2進数の「3桁」は8進数の「1桁」に、2進数の「4桁」は16進数の「1桁」にそのまま対応するという性質を利用します。たとえば2進数の「110101」を8進数にするなら、右から3桁ずつ区切って「110」と「101」にし、それぞれを8進数にして「6」と「5」、よって「65」と即答できます。このテクニックを身につけておくと、試験時間を大幅に節約でき、見直しの時間を作ることができます。

関連する用語

基数変換の出発点となる2進数や、人間が読みやすいようにまとめた16進数、また少数を扱う際に起きる問題に関連して浮動小数点数なども併せて確認しておくと、数値表現への理解がより強固になります。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ