重複の可能性:
>>>と>>の違い
誰か>>>
がJavaでオペレーターが何をしているのか説明してもらえますか?この質問、HashMapのHashメソッドで遭遇しました。>>>
質問での使用法から、それはシフト演算子であるように見えます-との違いは何>>
ですか?
重複の可能性:
>>>と>>の違い
誰か>>>
がJavaでオペレーターが何をしているのか説明してもらえますか?この質問、HashMapのHashメソッドで遭遇しました。>>>
質問での使用法から、それはシフト演算子であるように見えます-との違いは何>>
ですか?
Javaチュートリアルから:
符号なし右シフト演算子">>>"はゼロを左端の位置にシフトしますが、">>"の後の左端の位置は符号拡張に依存します。
簡単なプログラムで違いを確認できます。
public static void main(String[] args) throws InterruptedException, IOException {
int i = -1;
int j = i >> 1;
int k = i >>> 1;
System.out.println("i = " + i + "\t\t<=> " + Integer.toBinaryString(i));
System.out.println("j = " + j + "\t\t<=> " + Integer.toBinaryString(j));
System.out.println("k = " + k + "\t<=> " + Integer.toBinaryString(k));
}
出力:
i = -1 <=> 11111111111111111111111111111111
j = -1 <=> 11111111111111111111111111111111
k = 2147483647 <=> 1111111111111111111111111111111