ITパスポート試験 / 平成28年度 秋期 ITパスポート試験 公開問題 / 問91
certification-simodake-work

平成28年度 秋期 ITパスポート試験 公開問題 問91 解説 2進数の乗算

2進数1011と2進数101を乗算した結果の2進数はどれか。

  1. ア 1111
  2. イ 10000
  3. ウ 101111
  4. エ 110111 ✓ 正答

解説

この問題を解くには、2進数のまま筆算を行う方法と、一度慣れ親しんだ10進数に変換して計算した後に2進数に戻す方法の2通りがあります。試験本番では、計算ミスを防ぎやすい「10進数への変換」による解き方がおすすめです。

10進数に変換して計算する手順

まず、問題文にある2進数を10進数に変換します。

2進数 10111011 の変換: 1×23+0×22+1×21+1×20=8+0+2+1=111 \times 2^{3} + 0 \times 2^{2} + 1 \times 2^{1} + 1 \times 2^{0} = 8 + 0 + 2 + 1 = 11

2進数 101101 の変換: 1×22+0×21+1×20=4+0+1=51 \times 2^{2} + 0 \times 2^{1} + 1 \times 2^{0} = 4 + 0 + 1 = 5

次に、これらを10進数として乗算します。 11×5=5511 \times 5 = 55

最後に、10進数の 5555 を2進数に戻します。555522 のべき乗の和で分解すると考えやすくなります。 55=32+16+4+2+155 = 32 + 16 + 4 + 2 + 1 55=1×25+1×24+0×23+1×22+1×21+1×2055 = 1 \times 2^{5} + 1 \times 2^{4} + 0 \times 2^{3} + 1 \times 2^{2} + 1 \times 2^{1} + 1 \times 2^{0}

これを2進数の並びにすると 110111110111 となります。したがって、正解はエです。

2進数のまま筆算で行う方法

2進数の乗算は、実は10進数の筆算よりもシンプルです。掛ける数が 11 ならそのまま書き写し、00 なら 00 を並べるだけだからです。

      1011
    x  101
    ------
      1011  (1011 × 1)
     0000   (1011 × 0 を1桁ずらす)
    1011    (1011 × 1 を2桁ずらす)
    ------
    110111

各桁の足し算において、1+11 + 1 が発生した箇所では 00 にして上の桁に 11 を繰り上げる点に注意してください。この筆算でも、結果は 110111110111 になります。

基数変換とコンピュータの演算原理

この問題で使われている知識は、基数変換(n進数からm進数への変換)とバイナリ演算です。

私たちは普段、10を基準とした10進数を使っていますが、コンピュータの内部では電圧のオン・オフなどを 0011 の2つの状態だけで表す2進数が使われています。ITパスポート試験で2進数の計算が頻出するのは、コンピュータがどのようにして複雑な計算を処理しているのか、その最小単位の仕組みを理解するためです。

特に、掛け算はコンピュータ内部の演算装置(ALU)において、加算(足し算)とビットシフト(桁ずらし)を繰り返すことで実現されています。先ほどの筆算のプロセスを思い浮かべると、掛ける数が 11 の場所で元の数をずらして足していることがわかります。このように、数学的な計算手順がそのままハードウェアの回路設計の考え方に直結しているのです。

実務においては、プログラミングでビット演算を用いた高速化を行ったり、ネットワーク設定(サブネットマスクの計算)をしたりする場面で、こうした進数の概念が必要不可欠な基礎知識となります。

参考リンク

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう