>>: 符号付き右シフト。正の数値は右にシフトされ、上位ビットは 0 で埋められ、負の数値は右にシフトされ、上位ビットは 1 で埋められます。 例:
4 >> 1、結果は 2; -4 >> 1、結果は -2。 -2 >> 1 の場合、結果は -1 になります。
>>>: 符号なしの右シフト。正の数か負の数かに関係なく、上位ビットは常に 0 で埋められます。 (推奨学習: java コース )
正の数の場合、>> と >>> の間に違いはありません。
負の数の場合、-2 >>> 1、結果は 2147483647 (Integer.MAX_VALUE)、-1 >>> 1、結果は 2147483647 (Integer.MAX_VALUE) になります。 MAX_VALUE) )。
次のコードは、2 つの数値の符号が等しいかどうかを判断できます。
return ((a >> 31) ^ (b >> 31)) == 0;
例:
-12 > ;> 3 は、3 桁の符号付き右シフトです。結果は、1111 1111 1111 1111 1111 1111 1111 1110 となります。10 進法は -2;
-12 > ゼロは 0001 1111 1111 1111 1111 1111 1111 1110、10 進数: 536870910。
以上がJava >>> と >> の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。