シフト演算(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ビットシフトすればよい。