離散数学(全109問中63問目)
広告
解説
2進数には、ビット列全体を左へnビット分シフトすると2n倍、右へnビット分シフトすると1/2n倍になるという特徴があります。
- 正しい。全体を1ビットだけ左にシフトしたビット列に対して、元のビット列を加算(+1倍)する処理を組み合わせているので、3倍になります。
- 左へ1ビット分シフトする。空白になる最右ビットは0で埋める。
b1b2…bn ⇒ b1b2…bn0 - 1.で得られたビット列に元のビット列を加算する。
b1b2…bn0+b1b2…bn
- 左へ1ビット分シフトする。空白になる最右ビットは0で埋める。
- 左へ2ビットシフトしたあと-1しているので、結果は4倍-1です。3倍ではありません。
- 左へ3ビットシフトしているので、結果は23=8倍になります。
- 左へ1ビットシフトしたあと+1しているので、結果は2倍+1です。3倍ではありません。
広告