基礎理論
基本情報技術者試験 科目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 回(公開問題での観測値)