0

重複の可能性:
>>>と>>の違い

誰か>>>がJavaでオペレーターが何をしているのか説明してもらえますか?この質問、HashMapのHashメソッドで遭遇しました。>>>質問での使用法から、それはシフト演算子であるように見えます-との違いは何>>ですか?

4

3 に答える 3

4

Javaチュートリアルから:

符号なし右シフト演算子">>>"はゼロを左端の位置にシフトしますが、">>"の後の左端の位置は符号拡張に依存します。

于 2012-08-29T10:53:58.147 に答える
2

簡単なプログラムで違いを確認できます。

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
于 2012-08-29T10:57:23.747 に答える
0

符号付き右シフト演算子「>>」はビットパターンを右にシフトします。符号なし右シフト演算子「>>>」はゼロを左端の位置にシフトします。

詳しくは

このリンクをたどる

于 2012-08-29T10:57:45.587 に答える