基本情報技術者試験 - 令和6年6月修了 - 問1

数値を2進数で格納するレジスタがある。このレジスタに正の整数xを設定した後,“レジスタの値を2ビット左にシフトして,xを加える” 操作を行うと,レジスタの値はxの何倍になるか。ここで,あふれ(オーバフロー)は,発生しないものとする。
ア3
イ4
ウ5
エ6
答え : ウ
分野 : テクノロジ系 › 基礎理論 › 基礎理論 › 離散数学
同一問題 : 〔令2修6問1〕〔平29修7問1〕〔平28春問1〕〔平23修6問1〕〔平21春問1〕
解説 :
レジスタに入った数値を2進数のまま「2ビット左シフトしてxを加える」とどうなるかを考える問題です。2進数を左に1ビットシフトすると値は2倍になります。2ビット左シフトすると2倍がもう一度繰り返されるので4倍になります。そこにさらにxを加えるということは,4倍になった値に元の値(1倍)を足すことになるので,4x+x=5xとなります。正解は「ウ」の5倍です。

「イ」の4倍はシフトのみで加算を忘れた場合の誤答,「ア」の3倍や「エ」の6倍は計算を誤った場合に選びやすい選択肢です。2進数のシフト演算と乗算の関係を理解していれば,実際に2進数で試さなくても暗算で解ける問題です。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる