位移運算符案例
優點:比一般的運算快很多
// 要計算的整數例子
int integerNumber = 10;
// 注意,位移運算符的對象隻能是整數,結果當然也是整數
// 将這個整數左移一位 可以得到這個數翻倍的結果 這裡的 1 就是要移動的結果
System.out.println(integerNumber << 1);
// 左移兩位 數值翻兩倍
System.out.println(integerNumber << 2);
// 右移一位,縮小一半 想縮小四分之一把 1 換成 2就可以
System.out.println(integerNumber >> 1);
//無符号右移一位 縮小一半,正數會得到對應的結果,負數的話結果會變為正數
System.out.println(integerNumber >>> 1);
對應結果
20
40
5
5
反過來當為負數時結果為
-20
-40
-5
2147483643
若要指派運算可以這樣寫,其實和 + - * / 是一樣的
int x = 50 ;
x <<= 1;
// 其實效果就是下面這樣 結果為x翻一倍的值
x = x << 1
// 與一般的運算可以一樣了解 例如:
x += 2
x *= 2
// 也就是
x = x + 2
x = x * 2
需要注意的是位移運算符的運算優先級并不比 + - 高,是以會出現如下結果
System.out.println(10 + 16 >> 1);
System.out.println(10 + (16 >> 1));
結果如下:
13
18