平成21年度 春期 ITパスポート試験 問64 解説 2進数の計算
問64 2進数10110を3倍したものはどれか。
- ア 111010
- イ 111110
- ウ 1000010 ✓ 正答
- エ 10110000
解説
2進数を10進数に直してから計算する
もっとも確実な方法は、問題の数値を一度10進数に変換し、掛け算を行ってから再度2進数に戻す手順です。
- 2進数の 10110 を10進数へ変換します。 右から順に の位であるため、 となります。
- 22を3倍します。 です。
- 66を2進数へ変換します。 66以下の最大の2のべき乗は64()です。 となり、2進数で 1000010 となります。
2進数のシフト演算を活用する
計算の手間を省きたい場合、2進数のシフト演算を利用すると効率的です。2進数の数値を左に1ビットずらす(シフトする)と、値は2倍になります。
今回の問題は「3倍」を求めるものですが、これは「2倍した値」と「元の値」を足し合わせることで表現できます。
- 元の数値を2倍する:10110 を左に1ビットシフトして 101100(22の2倍)を作ります。
- 2倍したものと元の数値を足す:101100 + 10110 を筆算で行います。
101100
+ 010110
----------
1000010
この結果、正解は 1000010(ウ)であることが導き出せます。
なぜこの知識が重要なのか
コンピュータの内部では、すべてのデータが2進数で処理されています。ITパスポート試験でこの手の計算問題が出題される意図は、単なる算数能力を問うことではなく、コンピュータがどのように数値を扱い、どのように演算を行っているかの論理的な基礎を理解しているかを確認することにあります。
特にビットシフト演算は、プログラムにおける乗算の高速化テクニックとして非常に重要です。CPUにとって、複雑な乗算回路を動かすよりも、ビットをずらすだけのシフト演算の方が圧倒的に速く処理できるためです。このような背景知識を持つことで、単なる数値変換の訓練が、コンピュータアーキテクチャへの理解へとつながっていきます。
実務においては、ネットワークのサブネットマスクの計算や、フラグ管理(特定のビットの状態を確認・変更する処理)など、ビット単位の操作が必要な場面に直面することがあります。試験対策として計算手順を覚えるだけでなく、「コンピュータはこうして効率的に計算しているのか」という視点を持つことが合格への近道です。