問題本文
数値を2進数で表すレジスタがある。このレジスタに格納されている正の整数 x を10倍にする操作はどれか。ここで,桁あふれは起こらないものとする。
選択肢
- ア.xを2ビット左にシフトした値にxを加算し,更に1ビット左にシフトする。
- イ.xを2ビット左にシフトした値にxを加算し,更に2ビット左にシフトする。
- ウ.xを3ビット左にシフトした値と,xを2ビット左にシフトした値を加算する。
- エ.xを3ビット左にシフトした値にxを加算し,更に1ビット左にシフトする。
正解
ア. xを2ビット左にシフトした値にxを加算し,更に1ビット左にシフトする。
解説
10x = (4x+x)×2 = 5x×2 と分解できる。2ビット左シフト(4x)+x=5x、さらに1ビット左シフトで10xになる。
選択肢ごとの解説
- ア.(4x+x)×2=10x で正解。
- イ.(4x+x)×4=20x になり10倍ではない。
- ウ.8x+4x=12x で10倍にならない。
- エ.(8x+x)×2=18x で10倍にならない。
基本情報技術者試験 平成29年度 秋期 午前 の過去問一覧へ戻る・問1