基礎理論
基本情報技術者試験 科目A免除 修了試験 20140727 実施分 問1
数値を 2 進数で表すレジスタがある。このレジスタに格納されている正の整数 x を 10 倍にする操作はどれか。ここで,シフトによる桁あふれは,起こらないものとする。
答えを選ぶ
出典:基本情報技術者試験 科目A免除 修了試験 20140727 実施分 問1(問題文は IPA の公開問題。解説は当サイト作成)
解説に誤りを見つけたら、解説の誤りを報告してください。
答えと解説を見る
正解:ア
覚える知識
左シフトによる2のべき乗倍と加算
2進数をnビット左にシフトすると値は2^n倍になるため、任意の倍数はシフトと加算の組合せで表せる。
この問題で必要なこと
nビット左シフトは2^n倍になる。10x=(4x+x)×2と分解し、2ビット左シフト+xを加算した後に1ビット左シフトする。
ひっかけ
3ビット左シフト(8倍)と2ビット左シフト(4倍)の足し算(12倍)や、シフト量の取り違えで10倍にならない選択肢が並ぶ。
この知識の出題:本試験系 4 回・免除試験 12 回(公開問題での観測値)。頻出知識ランキング99位(全1,254件中)。