基本情報技術者 平成29年度秋期午前問1

午前問1

数値を2進数で表すレジスタがある。このレジスタに格納されている正の整数xを10倍する操作はどれか。ここで、桁あふれは、起こらないものとする。
xを2ビット左にシフトした値にxを加算し、更に1ビット左にシフトする。
xを2ビット左にシフトした値にxを加算し、更に2ビット左にシフトする。
xを3ビット左にシフトした値と、xを2ビット左にシフトした値を加算する。
xを3ビット左にシフトした値にxを加算し、更に1ビット左にシフトする。
『情報処理過去問.com』からiPhoneアプリがリリースされました!!

正解

解説

2進数のビット列を左にnビットシフトすると元の値の2nとなり、右にnビットシフトすると元の値の1/(2n)となります。
それぞれを計算すると、
ア.xを2ビット左にシフトした値にxを加算し、更に1ビット左にシフトする。
(22+1)×21=10
イ.xを2ビット左にシフトした値にxを加算し、更に2ビット左にシフトする。
(22+1)×22=20
ウ.xを3ビット左にシフトした値と、xを2ビット左にシフトした値を加算する。
(23)+22=12
エ.xを3ビット左にシフトした値にxを加算し、更に1ビット左にシフトする。
(23+1)×21=18
よって正解はアとなります。
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする