back

シフト演算(2)


 テキストは「 シフト演算 」のページを参照


★★★宿題:二種向け★(2000/2/29)

 2 進数で表現された正の整数を 32 倍するには,左に何ビットシフトすればよ
いか。ただし,あふれは起らないものとする。

 ア 4

 イ 5

 ウ 6

 エ 32


■解答■
  二種午前平成11年春問33

 イ 5

> 左に1ビットづつシフトするたびに、
> 2,4,8,16,32と増えて行き、5ビット目で32倍になる。

 どうもありがとうございました。

>32は2^5なので、32倍する場合は左に5ビットシフトします。
>
>例えば2を32倍する場合を考えると、
>0000000000000010(2)=2(10)
                       5ビット左シフト
>0000000001000000(2)=32(10)

 どうもありがとうございました。

  「左にnビットシフトするのは2^n倍するのと同じ」
  「右にnビットシフトするのは2^nで割るのと同じ」

32=2×2×2×2×2=2^5 (注「 ^ 」 はべき乗の意味)であるので
左に5ビットシフトすればよい。