基本情報技術者講座
★ 猫本 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ビット左にシフトする
x×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を加算する
x×22+x=4x+x=5x
更に1ビット左にシフトする
5x×21=10x(10倍)
イ
xを2ビット左にシフトした値にxを加算する
x×22+x=4x+x=5x
更に2ビット左にシフトする
5x×22=20x(20倍)
ウ
xを3ビット左にシフトした値
x×23=8x
xを2ビット左にシフトした値
x×22=4x
それらを加算する
8x+4x=12x(12倍)
エ
xを3ビット左にシフトした値にxを加算する
x×23+x=8x+x=9x
更に1ビット左にシフトする
9x×21=18x(18倍)
解答
ア