平成22年度 春期 ITパスポート試験 問52 解説 2進数の10進変換
2進数 1.101 を 10 進数で表現したものはどれか。
- ア 1.2
- イ 1.5
- ウ 1.505
- エ 1.625 ✓ 正答
解説
小数点を含む2進数を10進数に変換する手順
2進数の「1.101」を10進数に直すには、各桁の数値を「重み(位の価値)」に掛け合わせて合計します。
- 整数部:
- 小数第1位:
- 小数第2位:
- 小数第3位:
これらをすべて足し合わせると、 となります。
2進数の「重み」という考え方
10進数では、小数点より左側は1、10、100()という位があり、右側は0.1、0.01()という位が続きます。
2進数も仕組みは全く同じです。ただし、基数が2であるため、位が上がるごとに2倍、下がるごとに2で割る(倍する)ことになります。
- 小数第1位:
- 小数第2位:
- 小数第3位:
- 小数第4位:
このように、2進数の小数部分は「2のマイナス乗」を順番に並べたものとして考えることができます。
数値を変換する時の思考プロセス
試験会場でこの問題に遭遇した際は、まず「小数点以下の桁がいくつあるか」を確認します。今回の「101」は3桁ですので、0.5、0.25、0.125の3つの重みを準備します。
次に、2進数の「1.101」を各桁に分解します。 整数部の「1」はそのまま1。小数部は「1」「0」「1」の順で並んでいます。これらを先ほどの重みに対応させます。
- 最初の「1」は0.5の場所にあるので、そのまま0.5
- 次の「0」は0.25の場所にあるので、足し算の影響なし(0)
- 最後の「1」は0.125の場所にあるので、そのまま0.125
最後にこれらを合計します。「1」+「0.5」+「0」+「0.125」を計算して「1.625」を導き出します。このように分解して考えれば、計算ミスを最小限に抑えることができます。
コンピュータにおける小数の重要性
コンピュータ内部ではすべてのデータが0と1の組み合わせで処理されています。しかし、人間が扱う数値には必ず小数(1.5倍、0.25秒など)が存在します。
もしコンピュータが小数を扱えなければ、科学技術計算や金融取引、画像処理などは一切行えません。今回の問題のように「2進数から10進数への変換」を理解することは、コンピュータが現実世界の曖昧な数値情報をどのように解釈・管理しているのか、その基礎知識を身につけることに他なりません。
また、実務において、ネットワークのサブネットマスクの計算や、プログラムでのビット演算を行う際にも、この「2のべき乗」の感覚が非常に重要になります。小数の扱いを知ることは、IT技術者としてデータの本質を正しく理解するための第一歩となります。