実体験から始める情報講座

基本情報技術者講座

★ 猫本 3-05 シフト演算(その1) ★

基本情報技術者 平成31年春期 問1

10進数の演算式7÷32の結果を2進数で表したものはどれか。

ア  0.001011
イ  0.001101
ウ  0.00111
エ  0.0111

解説

(頭の準備体操)

元の数を,nビット右にシフトすると,1/2n倍になる


7÷32=7×1/32=7×1/25

10進数7を2進数に基数変換すると,111.

よって,5ビット右にシフトすると,0.00111です。

解答

基本情報技術者 平成28年度春期 問1

数値を2進数で格納するレジスタがある。このレジスタに正の整数xを設定した後,"レジスタの値を2ビット左にシフトして,xを加える"操作を行うと,レジスタの値はxの何倍になるか。ここで,あふれ(オーバフロー)は,発生しないものとする。

ア  3
イ  4
ウ  5
エ  6

解説

(頭の準備体操)

元の数を,左にnビットシフトすると,2n倍になる


2ビット左にシフトする

22=4x


xを加える

4x+x=5x

よって,5倍です。

解答

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

数値を2進数で表すレジスタがある。このレジスタに格納されている正の整数xを10倍する操作はどれか。ここで,桁あふれは,起こらないものとする。

ア  xを2ビット左にシフトした値にxを加算し,更に1ビット左にシフトする。
イ  xを2ビット左にシフトした値にxを加算し,更に2ビット左にシフトする。
ウ  xを3ビット左にシフトした値と,xを2ビット左にシフトした値を加算する。
エ  xを3ビット左にシフトした値にxを加算し,更に1ビット左にシフトする。

解説

(頭の準備体操)

元の数を,左にnビットシフトすると,2n倍になる


xを2ビット左にシフトした値にxを加算する

22+x=4x+x=5x

更に1ビット左にシフトする

5x×21=10x(10倍)


xを2ビット左にシフトした値にxを加算する

22+x=4x+x=5x

更に2ビット左にシフトする

5x×22=20x(20倍)


ウ 

xを3ビット左にシフトした値

23=8x

xを2ビット左にシフトした値

22=4x

それらを加算する

8x+4x=12x(12倍)


xを3ビット左にシフトした値にxを加算する

23+x=8x+x=9x

更に1ビット左にシフトする

9x×21=18x(18倍)

解答