Java千百問_03基礎語法(013)_>、>>、>>>有什麼區別
阿新 • • 發佈:2019-02-10
1、>、>>、>>>有什麼區別
瞭解java運算子看這裡:java種的運算子都有哪些
瞭解java運算子優先順序看這裡:java運算子的優先順序是怎樣的
“>”屬於關係運算符,而“>>”、”>>>”則按位運算子,看一下它們各自的含義:
運算子>
關係運算符,表示大於。
如:if(a>b)…結果是boolean型別。運算子>>
按位運算子,表示右移。<<表示左移。
j<< i。相當於num除以2的n次冪,j/(int) (Math.pow(2, i))。
如:int i=15; i>>2的結果是3,移出的部分將被拋棄
轉為二進位制的形式可能更好理解,0 0000 1111(15)右移2位的結果是0 0000 0011(3)。
瞭解二進位制運算看這裡:二進位制是怎樣做位運算的- 運算子>>>
按位運算子,表示無符號右移。
與>>類似,但移動時忽略符號位,空位都以0補齊。
無符號右移運算子>>>只是對32位和64位的值有意義(以及負值),其餘情況與>>一致。
例項:
System.out.println("1、以下測試>:");
int a = 15, b = 2, c = -15;
System.out.println(a > b);
System.out .println("\n2、以下測試>>:");
System.out.println(a + " / (int) (Math.pow(2, " + b + "))) = "
+ (a / (int) (Math.pow(2, b))));
System.out.println(a + " >> " + b + " = " + (a >> b));
System.out.println(c + " >> " + b + " = " + (c >> b));
System.out.println("\n3、以下測試>>>:" );
System.out.println(a + " >>> " + b + " = " + (a >>> b));
System.out.println(c + " >>> " + b + " = " + (c >>> b));
執行結果如下:
1、以下測試>:
true
2、以下測試>>:
15 / (int) (Math.pow(2, 2))) = 3
15 >> 2 = 3
-15 >> 2 = -4
3、以下測試>>>:
15 >>> 2 = 3
-15 >>> 2 = 1073741820