一般的に言えば、ビットシフト ( >> , <<
) により、除算/乗算が可能になります。^2
例 :
9 (base 10): 00000000000000000000000000001001 (base 2)
--------------------------------
9 >> 2 (base 10): 00000000000000000000000000000010 (base 2) = 2 (base 10)
負の数の場合:
同様に、符号が保持されるため、yield は次のようになります-9 >> 2
。-3
-9 (base 10): 11111111111111111111111111110111 (base 2)
--------------------------------
-9 >> 2 (base 10): 11111111111111111111111111111101 (base 2) = -3 (base 10)
しかし、>>>
which を見ると、正の数については同じように動作しますが、負の数については異なる動作をします :
ゼロビットは左からシフトインされます
左からシフトする理由/使用法が見つかりません 0
(これにより、整数が正になります)。
-9 (base 10): 11111111111111111111111111110111 (base 2)
--------------------------------
-9 >>> 2 (base 10): 00111111111111111111111111111101 (base 2) = 1073741821 (base 10)
質問 :
どのようなシナリオで使用する必要があります>>>
か? 左からゼロを埋めて負の数を台無しにしたい理由がわかりません。