Java で >> は何を意味しますか?
Java では、 は「符号付き」右シフト演算子で、演算子の左側のオペランドを演算子の右側に移動します。横に指定された桁数。
演算子は「符号拡張」を使用します。値が正の場合は上位ビットに 0 が挿入され、値が負の場合は上位ビットに 1 が挿入されます。
1. その一般的な形式は次のとおりです:
value >> num
num は、値をシフトする桁数を指定します。
右シフトの規則について 1 つだけ覚えておいてください: 符号ビットは変更されず、符号ビットは左側に追加されます
2. 操作規則:
移動バイナリ形式ですべての数値を左に移動します。対応する桁数を右に移動し、下位ビットをシフトアウト(破棄)し、上位ビットに符号ビットを埋めます。つまり、正の数をゼロで埋め、 1
右シフトのオペランドがbyte型、short型の場合、これらの型を自動的にint型に展開します。
たとえば、削除する値が負の数の場合は、右にシフトするたびに左に 1 が追加され、削除される値が正の数の場合は、右にシフトするたびに左に 0 が追加されます。ビット拡張 (符号ビット保持) (符号拡張) は、右シフト
演算を実行するときに負の数の符号を維持するために使用されます。
3. 数学的意味
1 ビットを右にシフトすることは 2 で除算することと等価であり、n ビットを右にシフトすることは 2 の n 乗で除算することと等価です。
4. 計算プロセス
11 >>2(11为int型)
1). 11 の 2 進数形式は: 0000 0000 0000 0000 0000 0000 0000 1011
2). 最後の 2 桁を入力します。数値が正であるため、下位ビットをシフトアウトし、上位ビットをゼロで埋めます。
3)、最終結果は 0000 0000 0000 0000 0000 0000 0000 0010 です。
4)、10 進数に変換すると 3 になります。
35 >> 2(35为int型)
1)、35 をバイナリに変換します: 0000 0000 0000 0000 0000 0000 0010 0011
2)、下位ビットの最後の 2 桁を移動します: 0000 0000 0000 0000 0000 0000 0000 1000
3)、10 進数に変換: 8
推奨チュートリアル: Java チュートリアル
以上がJava で >> は何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。