基礎理論

基本情報技術者試験 科目A免除 修了試験 20190728 実施分 問1

数値を 2 進数で表すレジスタがある。このレジスタに格納されている正の整数 x を 10倍にする操作はどれか。ここで,桁あふれは起こらないものとする。
  • ア x を 2 ビット左にシフトした値に x を加算し,更に 1 ビット左にシフトする。
  • イ x を 2 ビット左にシフトした値に x を加算し,更に 2 ビット左にシフトする。
  • ウ x を 3 ビット左にシフトした値と,x を 2 ビット左にシフトした値を加算する。
  • エ x を 3 ビット左にシフトした値に x を加算し,更に 1 ビット左にシフトする。

出典:基本情報技術者試験 科目A免除 修了試験 20190728 実施分 問1

答えと解説を見る

正解:ア

覚える知識

左シフトによる2のべき乗倍と加算

2進数をnビット左にシフトすると値は2^n倍になる。

この問題で必要なこと

nビット左シフトは2^n倍になる。10x=(4x+x)×2と分解できる。

ひっかけ

イ・ウ・エは係数が10にならない組合せ(20倍・12倍・18倍)で誤らせる。

この知識の出題:本試験系 4 回・免除試験 12 回(公開問題での観測値)

この知識をアプリで解いて覚える レッスン「シフト演算で掛け算・割り算をする」で学ぶ

同じ知識の過去問