2017-05-28 6 views
-1

2 << 31)の左シフト操作を試みましたが、得られた結果は0でした。なぜそれが0になり、nの最大範囲は(2 << n)になるのでしょうか?左シフト操作の最大範囲

+4

そこに情報を追加する必要があります:使用している言語と、使用しているデータ型。 – jsbueno

答えて

0

2はバイナリで10であり、32ビットデータに00000000000000000000000000000010として格納されます。その10を31で左にシフトしようとしています.10が既に2つの場所を占めているので、左に向かって31から-2 0を飛びます。 32番目の0に達すると、10番目の '0'は32番目の場所に格納され、32番目の後に場所がないので '1'は失われます。結果は0000000000000000000000000000000の0になります。

関連する問題