本文へ移動

基本情報技術者試験 · 学習ガイド

2017年度 秋期 午前の問題・解答解説

旧制度の午前・午後と、2023年度以降の科目A・科目Bの公開問題を区別しています。現在の試験対策では現行シラバスと科目Bの形式を確認してください。公開問題は本試験の全出題を網羅する資料ではありません。

2017年度 秋期 午前の概要
30:00

問題番号から選ぶ

2進数レジスタにおけるシフト演算を用いた乗算

テクノロジ系 · シフト演算 / 基数変換と演算

数値を2進数で表すレジスタに正の整数 x が格納されている。桁あふれは発生しないものとしたとき、x を10倍にする操作として適切なものはどれか。

解答・解説を表示

解答

ア

解説

まず要点:左に1ビットシフトすると値は2倍になります。2進数では、左シフトは2倍、右シフトは半分にする操作と同じです。だから10倍したいときは、2の累乗(2、4、8…)を使った式に分けて、シフトと足し算を組み合わせれば計算できます。

解き方

  1. 10倍を2の累乗の式に分けます。10x = (4 + 1) × 2x のように、まず4倍して足し、全体を2倍すると考えます。
  2. これは「xを2ビット左シフトしてxを足し、全体を1ビット左シフトする」操作と同じで、選択肢アに一致します。
選択肢 ア正解
2ビット左シフトで4倍にした値に元のxを足すと5倍、それをさらに1ビット左シフトすると10倍になります。
選択肢 イ不正解
2ビット左シフトしてxを足すと5倍、それを2ビット左シフトすると4倍されて20倍になるので誤りです。
選択肢 ウ不正解
3ビット左シフトで8倍、2ビット左シフトで4倍、足すと12倍になるので誤りです。
選択肢 エ不正解
3ビット左シフトしてxを足すと9倍、それを1ビット左シフトすると18倍になるので誤りです。

覚えるポイント

  • 2進数の左シフトnビットは2のn乗倍を意味します。

間違えやすいところ

  • 10を8+2と分けて8x+2xとする方法と混同しないようにしましょう。

出題の前提:平成29年度秋期基本情報技術者試験午前問1

出典:IPA『2017年度 秋期 午前』
公式問題冊子 p.3 ↗(www.ipa.go.jp)

2017年度 秋期 午前

参照した公式資料

IPAが公開した2017年度 秋期 午前の問題・解答資料です。