你知道Java中的位移動運算符代表什麼意思嗎?

<< 表示左移,不分正負數,低位補0

>> 表示右移,如果該數爲正,則高位補0,若爲負數,則高位補1

>>> 表示無符號右移,也叫邏輯右移,即若該數爲正,則高位補0,而若該數爲負數,則右移後高位同樣補0

實例:

  		System.out.println("8 << 2 : " + (8 << 2));
        System.out.println("-8 << 2 : " + (-8 << 2));
        System.out.println("8 >> 2 : " + (8 >> 2));
        System.out.println("-8 >> 2 : " + (-8 >> 2));

        System.out.println("8 >>> 2 : " + (8 >>> 2));
        System.out.println("-8 >>> 2 : " + (-8 >>> 2));

        System.out.println("1 >> 1 : " + (1 >> 1));
        System.out.println("8 >> 10 : " + (8 >> 10));

控制檯打印:

8 << 2 : 32
-8 << 2 : -32
8 >> 2 : 2
-8 >> 2 : -2
8 >>> 2 : 2
-8 >>> 2 : 1073741822
1 >> 1 : 0
8 >> 10 : 0

由上我們可以看出,<< x可以理解爲乘以x個2,>>可以理解爲除以x個2。而>>>爲無符號位移,爲正數時和>>一致;爲負數時,開頭代表着負數的1也被移動。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章