平成28年度 秋期 ITパスポート試験 公開問題 問91 解説 2進数の乗算
2進数1011と2進数101を乗算した結果の2進数はどれか。
- ア 1111
- イ 10000
- ウ 101111
- エ 110111 ✓ 正答
解説
この問題を解くには、2進数のまま筆算を行う方法と、一度慣れ親しんだ10進数に変換して計算した後に2進数に戻す方法の2通りがあります。試験本番では、計算ミスを防ぎやすい「10進数への変換」による解き方がおすすめです。
10進数に変換して計算する手順
まず、問題文にある2進数を10進数に変換します。
2進数 の変換:
2進数 の変換:
次に、これらを10進数として乗算します。
最後に、10進数の を2進数に戻します。 を のべき乗の和で分解すると考えやすくなります。
これを2進数の並びにすると となります。したがって、正解はエです。
2進数のまま筆算で行う方法
2進数の乗算は、実は10進数の筆算よりもシンプルです。掛ける数が ならそのまま書き写し、 なら を並べるだけだからです。
1011
x 101
------
1011 (1011 × 1)
0000 (1011 × 0 を1桁ずらす)
1011 (1011 × 1 を2桁ずらす)
------
110111
各桁の足し算において、 が発生した箇所では にして上の桁に を繰り上げる点に注意してください。この筆算でも、結果は になります。
基数変換とコンピュータの演算原理
この問題で使われている知識は、基数変換(n進数からm進数への変換)とバイナリ演算です。
私たちは普段、10を基準とした10進数を使っていますが、コンピュータの内部では電圧のオン・オフなどを と の2つの状態だけで表す2進数が使われています。ITパスポート試験で2進数の計算が頻出するのは、コンピュータがどのようにして複雑な計算を処理しているのか、その最小単位の仕組みを理解するためです。
特に、掛け算はコンピュータ内部の演算装置(ALU)において、加算(足し算)とビットシフト(桁ずらし)を繰り返すことで実現されています。先ほどの筆算のプロセスを思い浮かべると、掛ける数が の場所で元の数をずらして足していることがわかります。このように、数学的な計算手順がそのままハードウェアの回路設計の考え方に直結しているのです。
実務においては、プログラミングでビット演算を用いた高速化を行ったり、ネットワーク設定(サブネットマスクの計算)をしたりする場面で、こうした進数の概念が必要不可欠な基礎知識となります。