基礎理論

基本情報技術者試験 科目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件中)。

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

同じ知識の過去問