天天看點

Java專題 基礎篇 位移運算符<< ,>> 使用案例(更快的運算速度)

位移運算符案例

優點:比一般的運算快很多

// 要計算的整數例子
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