ITパスポート 2016年 秋期 問91
問題文
2進数1011と2進数101を乗算した結果の2進数はどれか。
選択肢
ア:1111
イ:10000
ウ:101111
エ:110111(正解)
🔒 解説は解答すると表示されます
二進数の乗算【ITパスポート解説】
正解の理由
2進数 (右から見て 1+2+0+8 = 11)と (5)を掛けると、十進で になります。55 を2進数に直すと です。したがって選択肢の中では エ(110111)が正しい答えです。
(補足:2進数 の値は 、 は 。)
解法ステップ
- 桁ごとの掛け算を使う(十進の筆算と同じ考え方)。
- 乗数 の下位ビット(右端)から順に見ます。下位ビット(LSB)は右端、上位ビット(MSB)は左端です。
- 各ビットが 1 のときは被乗数 をその位置だけ左へシフト(2のべき乗倍)して部分積を作る。ビットが 0 のときは部分積は 0 になります。
- 右端のビット(最下位、)→ 部分積:(そのまま)
- 次のビット(中央、)→ 部分積: を1桁左にシフト(つまり0)
- 左端のビット(最上位、)→ 部分積: を2桁左にシフト →
- 部分積を足し合わせる(2進の加算、繰り上がりに注意)。
- 部分積を揃えると次のようになります:
- 001011 ← (0桁シフト)
- 000000 ← (1桁シフト)
-
- 101100 ← (2桁シフト)
= 110111 ← 結果
- 部分積を揃えると次のようになります:
- (確認)十進でチェック:。十進の と一致する。
選択肢別の誤答解説
-
ア: 1111(15)
どう間違えるか:被乗数 (11)と乗数 (5)を「足し算(11+4など)」と混同したり、2進での加算で繰り上がりを無視して論理和(OR)や桁ごとの単純な足し算のみを行うと出やすい値です。筆算で部分積のシフトや繰り上がりを正しく扱えていないケースです。 -
イ: 10000(16)
どう間違えるか:典型的には「掛け算ではなく足し算をしてしまい、11+5=16 としてしまう」か、あるいは乗数 を誤って (4)と認識してしまい桁シフトや桁の扱いでさらに誤りが生じる場合です。別の誤りとして、部分積を作ったあと桁の取り落とし(上位桁を捨てる)や誤って桁をずらしてしまうことでも生じます。 -
ウ: 101111(47)
どう間違えるか:部分積の加算で桁ずれや繰り上がりを間違え、例えば一部の桁だけを重ねて足すなどのミスで本来の合計より小さな値になることがあります。部分積(1011 と 101100)の揃え方を間違えたり、繰り上がりを一つ分少なく扱うとこのような数字が出ることがあります。 -
エ: 110111(55)
正しい手順(部分積のシフトと全桁での加算)を行うと得られる答えです。上の「解法ステップ」で示した通りです。
よくある誤解
-
ビットの向き(MSB/LSB)を混同する
- 「上から見る」と「下位ビットから見る」を混同すると、どの桁を何桁シフトするかが分からなくなります。必ず「右端が下位ビット(LSB)、左端が上位ビット(MSB)」と意識してください。
-
掛け算を足し算や論理演算と取り違える
- 二進の掛け算は十進と同じ筆算の考え方です。ビットごとの AND や OR とは別物です(AND はビット単位の乗算に似る場面もありますが、桁シフトと全体の加算が必要)。
-
部分積のシフトを忘れる/桁を落とす
- 乗数の各ビットに対して適切に左シフトしてから加算すること。シフトを忘れたり、計算途中で上位桁を切り捨てると誤答になります。
補足コラム
- 二進数の掛け算は「0・1 の掛け算(1 のときだけ被乗数を取る)」と「桁シフト(2のべき乗倍)」、そして「加算」の組み合わせです。コンピュータ内部でも同じ原理で乗算器が動作しますが、高速化のために四則演算の専用回路やアルゴリズム(ブース法など)が使われます。
- 別のやり方:短い数なら十進に直して掛け、結果を二進に戻す方法も有効です。今回なら を を繰り返して を得ます。
(十進→二進の戻し方の例)
余り
余り
余り
余り
余り
余り
下から読んで 。
余り
余り
余り
余り
余り
下から読んで 。
FAQ
Q. 暗算で早く確認するコツは?
A. まずそれぞれを十進に直して掛け算できるか確認する方法が早いです(小さな数なら手早い)。慣れてきたら部分積を短くメモしてシフト分だけ位置に注意して足します。
A. まずそれぞれを十進に直して掛け算できるか確認する方法が早いです(小さな数なら手早い)。慣れてきたら部分積を短くメモしてシフト分だけ位置に注意して足します。
Q. 部分積のシフトを忘れやすいです。覚え方は?
A. 「乗数の右端のビットはそのまま、左へ1つ動くごとに被乗数を2倍(左へ1桁シフト)」と覚えてください。乗数の各ビットは「その桁の2べき倍だけ被乗数を使う」というイメージです。
A. 「乗数の右端のビットはそのまま、左へ1つ動くごとに被乗数を2倍(左へ1桁シフト)」と覚えてください。乗数の各ビットは「その桁の2べき倍だけ被乗数を使う」というイメージです。
Q. 2進での掛け算とAND/ORが混ざるのはなぜ?
A. ビットごとの掛け算(1×1=1、1×0=0)は AND に似ますが、全体の掛け算では桁シフトと加算が必須です。論理演算とは目的が違うため混同しないように注意してください。
A. ビットごとの掛け算(1×1=1、1×0=0)は AND に似ますが、全体の掛け算では桁シフトと加算が必須です。論理演算とは目的が違うため混同しないように注意してください。
関連キーワード: 二進数, 乗算, 桁シフト, LSB, MSB, 基数変換, 部分積, 桁上がり, 進数変換

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

