平成21年度 秋期 ITパスポート試験 問64 解説 進数変換
8進数の55を16進数で表したものはどれか。
- 2D ✓ 正答
- 2E
- 4D
- 4E
解説
8進数から10進数、そして16進数への変換手順
8進数を16進数に変換するには、一度10進数を経由するのが最も確実です。以下の2ステップで計算します。
8進数の55を10進数に変換する 8進数の各桁は右から8の0乗、8の1乗という重みを持っています。
10進数の45を16進数に変換する 16で割った商と余りを求めます。 余り 16進数では10をA、11をB、12をC、13をDと表すため、余りの13はDとなります。商の2と合わせて、答えは2Dです。
基数変換を支える重みと位取りの考え方
数値の表現方法である基数法において、ある位の数字が持つ価値(重み)は、その基数の累乗で決まります。8進数であれば、右から左へ向かって 、、 と大きくなっていきます。
この考え方は、私たちが日常的に使っている10進数も同じです。10進数の「45」は、 を意味しています。基数変換とは、ある「重みのルール」で書かれた数値を、別の「重みのルール」に翻訳し直す作業であると理解すると、仕組みが見えてきます。
思考プロセスと計算のコツ
この問題のような変換を行う際は、まず「今の数字を素直に分解する」ことから始めます。8進数の「55」を見たときに、「5個の8と5個の1がある」と直感的にイメージできれば、10進数への変換はスムーズです。
次に、10進数から他の進数へ変換する場合の「割り算の繰り返し」という手法をセットで覚えておきましょう。今回の例のように、10進数を16進数に直すには「16で割って余りを出す」という作業を繰り返します。最後に得られた余りを逆順(下から上へ)に並べるだけで、どんな進数にも対応できます。
コンピュータ内部におけるデータ表現の重要性
なぜITパスポートでこのような進数変換が問われるのかというと、コンピュータが処理を行う基礎として、2進数、8進数、16進数が密接に関わっているからです。
例えば、プログラミングやネットワーク設定で頻繁に見かける「IPアドレス」や「カラーコード(#FF0000など)」は、しばしば16進数で記述されます。8進数や16進数は、2進数(0と1の羅列)を人間が読みやすく短縮するための「2進数の省略表記」としての側面が非常に強いのです。
エンジニアがコンピュータのメモリ上の状態をデバッグしたり、ハードウェアのスイッチ設定を行ったりする現場では、こうした進数間の変換が日常的に行われます。単なる試験のための計算問題ではなく、コンピュータの情報を扱うための「共通言語」を学んでいるという意識を持つと、より深い理解につながります。