戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2016年 秋期 91


問題文

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

選択肢

1111
10000
101111
110111(正解)

🔒 解説は解答すると表示されます

2進数の乗算(1011 × 101)【ITパスポート 解説】

正解の理由

2進数は「0 と 1 のみ」を使う数の表し方です。
与えられた二つの数を10進数に直すと、 となり、 です。
55 を2進数で表すと です。したがって、選択肢の中では (110111)が正しい答えです。

解法ステップ

ここでは「桁ごとの掛け算(筆算)」と「ビットシフトを使う速い方法」の2通りを示します。どちらも理解しておくと便利です。
  1. 桁ごとの筆算(わかりやすい手順)
   1011   (掛けられる数)
 x  101   (掛ける数)
-------
   1011   ← 101 の最下位ビット1に対する 1011 × 1(そのまま)
  00000   ← 次のビット0に対する 1011 × 0 を1桁左にシフト(結果は0)
 1011    ← 次のビット1に対する 1011 × 1 を2桁左にシフト
-------
 110111
上の足し算を行うと になります。
  1. ビットシフトを使う(計算が速い)
  • 2進数で桁を左に1つずらすと「2倍」になります(右に1つで1/2)。
  • なので、
  • を2桁左にずらす(4倍)と
  • これに元の を足すと
どちらの方法でも結果は 、つまり選択肢の になります。

選択肢別の誤答解説

  • ア: 1111
    1111 は を表します。桁の足し間違いや、掛け算を足し算(11+5=16 ではない)と混同した可能性があります。結果が小さすぎます。
  • イ: 10000
    10000 は (2^4)です。これも結果が小さすぎます。桁のシフトを1回(×2)だけ行ってしまった時の誤りに似ています。
  • ウ: 101111
    101111 は です。元の数のビットを単純に並べ替えたか、桁の重なりでキャリー(繰り上がり)を忘れた計算ミスの可能性があります。
  • : 110111
    110111 は で、正しい掛け算の結果です。

よくある誤解

  • 「2進数は桁をつなげればいい」と考える誤解
    例えば 1011 と 101 をつなげて 1011101 のようにしてしまうミスがあります。数の掛け算は並べるだけではありません。
  • 桁ごとの足し算で繰り上がり(キャリー)を忘れる
    2進数でも 1+1 = 10(2進)となり繰り上がりが発生します。これを忘れると誤答になります。
  • シフトと掛け算の関係を理解していない
    「左シフト=2倍」「右シフト=1/2」を知らずに、桁ずらしを間違えることがあります。

補足コラム

  • なぜ「左に1桁ずらすと2倍」になるか?
    10進数で10の位に上がると10倍になるのと同じ考え方です。2進数では位が と増えるので、左に1桁移動すると になり、2倍になります。
  • 速く計算するコツ
    101(=4+1)のように、掛ける数を 2 の冪の和に分解できれば、シフトと加算で簡単に計算できます。これはコンピュータ内部でも使われる基本的な手法です。

FAQ

Q. 1011_2 を10進にするには?
A. 各桁を として足します。
Q. 110111_2 が本当に 55 かどうか確認したい
A. 同様に各桁を足すと です。
Q. コンピュータで確かめる簡単な方法は?
A. Python なら次のように確認できます。
a = int('1011', 2)
b = int('101', 2)
product = a * b
bin_product = bin(product)[2:]
print(a, b, product, bin_product)  # 出力: 11 5 55 110111

関連キーワード: 2進数、二進法、ビット、乗算、ビットシフト、2進加算
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について