修了試験 2019-07-28実施分 基本情報技術者試験 問1
数値を2進数で表すレジスタがある。 このレジスタに格納されている正の整数xを10倍にする操作はどれか。 ここで,桁あふれは起こらないものとする。
正答1
解説
正解は1です。 2進数では、1ビット左にシフトするごとに値が2倍になります。 2ビットの左シフトは4倍、3ビットの左シフトは8倍です。 シフトと加算を組み合わせて、10xになる操作を探します。 【計算】 選択肢1:xを2ビット左シフトすると4xです。 4xにxを加算すると5xです。 5xを1ビット左シフトすると5x×2=10xです。 【選択肢別解説】 1:○ 4x+x=5xを2倍するので、10xになります。 2:× 5xを2ビット左シフトすると4倍になるので、10xではなく20xです。 3:× 8xと4xを加算するので、10xではなく12xです。 4:× 8x+x=9xを2倍するので、10xではなく18xです。 【ポイント】 10=(4+1)×2のように、倍数を2のべき乗の和や積に分解して考えます。 nビットの左シフトは2のn乗倍になることを覚えておきましょう。まとめて解く
修了試験 2019-07-28実施分を通しで解く(80問)→