2014年6月15日日曜日

CHAPTER2_07_問題05

それぞれの操作が何倍か調べる

ア 「xを2ビット左にシフトした値」に「xを加算」し、更に「1ビット左にシフト」する

2ビット左にシフト →x * 22

xを加算 → x

x * 2+ x = 4x + x = 5x

この時点で5倍になった状態に対しさらに1シフトずらすということは
5xに対し、21したことになる
(5x) * 2 = 5x * 2 = 10x

アは10倍になる

イ 「xを2ビット左にシフトした値」に「xを加算」し、更に「2ビット左にシフト」する。

2ビット左にシフト →x * 22

xを加算 → x

x * 2+ x = 4x + x = 5x

この時点で5倍になった状態に対しさらに1シフトずらすということは
5xに対し、22したことになる
(5x) * 2 = 5x * 4 = 20x

イは20倍になる

ウ 「xを3ビット左にシフトした値」と、「xを2ビット左にシフトした値」を加算する。

3ビット左にシフト →x * 23

2ビット左にシフト→x * 22

x * 2+ x * 22 = 8x + 4x = 12x

ウは12倍になる

エ 「xを3ビット左にシフトした値」に「xを加算」し、更に「1ビット左にシフト」する。

3ビット左にシフト →x * 23

xを加算 → x

x * 2+ x = 8x + x = 9x

この時点で9倍になった状態に対しさらに1シフトずらすということは
9xに対し、21したことになる
(9x) * 2 = 9x * 2 = 18x


エは18倍になる


戻る

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。