Java運算符

1.>>,>>>和<<<

<<      :     左移運算符,num << 1,相當於num乘以2

>>      :     右移運算符,num >> 1,相當於num除以2

>>>    :     無符號右移,忽略符號位,空位都以0補齊

對於正數而言,>>和>>>沒區別。

對於負數而言,-2 >>> 1,結果是2147483647(Integer.MAX_VALUE),-1 >>> 1,結果是2147483647(Integer.MAX_VALUE)。

所以,要判斷兩個數符號是否相同時,可以這麼幹:

return ((a >> 31) ^ (b >> 31)) == 0;

2.&,&和|,||

  1. &和&&的區別: 
    • 單&時,左邊無論真假,右邊都進行運算;
    • 雙&時,如果左邊爲真,右邊參與運算,如果左邊爲假,那麼右邊不參與運算。
  2. “|”和“||”的區別:

    • 單或時,左邊無論真假,右邊都進行運算;
    • 雙或時,左邊爲真,右邊不參與運算。

注:這裏的左邊右邊值邏輯運算符的左邊右邊

異或( ^ )與或( | )的唯一不同之處是:當左右都爲true時,結果爲false。(不同才爲真)

當是操作符的時候:&表示只有對應的兩個二進位均爲1時,結果位才爲1,否則爲0。

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