基本情報技術者試験 2016年度 = 平成28年度・春期 午前 問1

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

ア 3 イ 4 ウ 5 エ 6

解答



解説

 10進数の11すなわち(1011)2を1ビット左にシフト(けた移動)すると、以下に示すように、値は2倍になります。

┏━┯━┯━┯━┯━┯━┯━┯━┓    ┃0│0│0│0│1│0│1│1┃  11 ┗━┷━┷━┷━┷━┷━┷━┷━┛            ↓ 1ビット左に桁移動  ┏━┯━┯━┯━┯━┯━┯━┯━┓    ┃0│0│0│1│0│1│1│0┃  22 ┗━┷━┷━┷━┷━┷━┷━┷━┛   

 2進数の値を左に1けた移動すると値が2倍になるのは、10進数の値を左に1けた移動すると値が10倍になるのとまったく同じ理由によります。
 このことから、左に2ビットシフトすると値は22倍すなわち4倍になることが分かります。これに、もとの値を加えると、5倍になります。


BohYoh.comトップページへ