1。ビットシフト演算子
- <<: 左にシフトします。
- >>: 右にシフトします。
- >>>: 符号なし右シフト (ゼロ埋め込み)。
2。シフト演算子の一般的な構文
値 << num-bits: 値を左にビットシフトします。
値>>; num-bits: 符号ビットを維持しながら、値のビットを右にシフトします。
値 >>> num-bits: 値を右にビットシフトし、左側にゼロを挿入します。
3。左シフト
- 左にシフトするたびに、値のすべてのビットが 1 つ左にシフトされます。
- 右側にビット0が挿入されます。
- 効果: 変位ごとに値を 2 で乗算します。
4。右にシフト
- 右にシフトするたびに、すべてのビットが 1 つ右に移動します。
- 符号ビットは保持されます:正の値の場合は 0、負の値の場合は 1。
- 効果: 各変位での値を切り捨てて 2 で割ります。
5。右シフト信号なし (>>>)
- 信号ビットの保持はありません。左側に 0 を挿入します。
- 値が符号なしの数値として扱われるビット パターンで使用されます。
6。変位は回転ではありません
- シフトアウトされたビットは失われます。
- シフトでは、シフトアウトされたビットを回復することはできません。
例:
左右シフト
*シフトデモ *
バイト値とショート値をシフトするときの注意
- Java は、式を評価するときに byte と short を int に自動的に昇格します。
例:
- 負のバイト値を右にシフト: int に昇格すると、上位ビットは 1 で埋められます。
- ゼロ パディング (>>>) を使用して右にシフトすると、ゼロが表示され始める前に上位 24 ビットが 1 になるため、問題が発生する可能性があります。
ビット演算子を使用した短縮代入
- すべての二項ビット演算子には、代入とビット演算を組み合わせた短縮形式があります。
例
リーリー
以上がシフト演算子とビット単位の短縮代入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。