(5)できるだけ少ない知識で解きたい人用「数値を2進数で表すレジスタがある。このレジスタに格納されている正の整数xを10倍する操作はどれか」

#基本情報技術者試験 #平成29年 #秋期 #問1 #2進数 #シフト

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

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

正の整数値xを、自分で勝手に決めてア~エのシフトや加算をやってみる。
xは正だから一番左は0、「桁あふれは、起こらないもの」とあるので。シフトしてもはみ出す値が出ないように、小さめの値にしておく。
00000111 <--- これをxにしてみる

ア 勝手にきめたxは00000111(10進数の7
 ① 00000111を2ビット左にシフトすると、00011100
 ② 00011100に00000111を加算すると、
     00011100
    +00000111
    --------------
     00100011
 ③ 更に1ビット左にシフトすると、01000110
01000110を10進数にすると2+4+64=70なので、7の10倍になった。

イ~エは確認しなくても大丈夫。

この記事が気に入ったらサポートをしてみませんか?