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