ITパスポート 2016年 秋期 問91
問題文
2進数1011と2進数101を乗算した結果の2進数はどれか。
選択肢
ア:1111
イ:10000
ウ:101111
エ:110111(正解)
🔒 解説は解答すると表示されます
2進数の乗算(1011 × 101)【ITパスポート 解説】
正解の理由
2進数は「0 と 1 のみ」を使う数の表し方です。
与えられた二つの数を10進数に直すと、、 となり、 です。
55 を2進数で表すと です。したがって、選択肢の中では エ(110111)が正しい答えです。
与えられた二つの数を10進数に直すと、、 となり、 です。
55 を2進数で表すと です。したがって、選択肢の中では エ(110111)が正しい答えです。
解法ステップ
ここでは「桁ごとの掛け算(筆算)」と「ビットシフトを使う速い方法」の2通りを示します。どちらも理解しておくと便利です。
- 桁ごとの筆算(わかりやすい手順)
1011 (掛けられる数)
x 101 (掛ける数)
-------
1011 ← 101 の最下位ビット1に対する 1011 × 1(そのまま)
00000 ← 次のビット0に対する 1011 × 0 を1桁左にシフト(結果は0)
1011 ← 次のビット1に対する 1011 × 1 を2桁左にシフト
-------
110111
上の足し算を行うと になります。
- ビットシフトを使う(計算が速い)
- 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. 各桁を として足します。。
A. 各桁を として足します。。
Q. 110111_2 が本当に 55 かどうか確認したい
A. 同様に各桁を足すと です。
A. 同様に各桁を足すと です。
Q. コンピュータで確かめる簡単な方法は?
A. Python なら次のように確認できます。
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パスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

