Java之運算符java
java運算符分爲算數運算符、位運算符、邏輯運算符、其餘運算符(三元運算符),具體以下:算法
&(按位與)
&按位與的運算規則是將兩邊的數轉換成二進制位, 最後運算最終值,其運算法則爲:兩個數都爲真,最終值才爲真,一個假既值爲假。(1&1=一、1&0=0、0&1=0、0&0=0)spa
3的二進制位是0000 0011,5的二進制位是0000 0101,那麼就是011 & 101,由按位與運算的規則可求得,最終值爲001,既值爲1。blog
7的二進制位是0000 0111,那就是101 & 111等於101,也就是0000 0101,估值爲5class
&&(邏輯與)
&&邏輯與也稱爲短路邏輯與。先運算&&左邊的表達式,一旦爲假,後續無論多少的表達式,均再也不計算,一個爲真,在計算後邊的表達式,兩個爲真才爲真。二進制
|(按位或)
|按位或和&按位與計算方式都是轉換二進制再計算,不一樣的是計算規則(一個爲真即爲真)1|0 = 一、0|1 = 一、1|1 = 一、0|0 = 0im
8的二進制位0000 1000,2的二進制位是0000 0010,1000 | 0010,最終值爲1010,故8|2=10db
||(邏輯或)
邏輯或||的運算規則是一個爲真即爲真,後續再也不計算,一個爲假再計算後邊的表達式。img
^(異或運算符)
^異或運算符就是字面意思,異就是不一樣,其運算規則爲1^0 = 一、1^1 = 0、0^1 = 一、0^0 = 0di
5的二進制位是0000 0101,9的二進制位是0000 1001,也就是0101^1001,結果爲1100,00001100的是十進制爲是12
<<(左移運算符)
5<<2的意思爲5的二進制位往左挪兩位,右邊補0,5的二進制位是0000 0101,就是把有效值101往左挪兩位就是0001 0100,正數右邊第一位補0,負數補1,等於乘於2的n次方,十進制位是20
>>(右移運算符)
凡是運算符都要先把值轉換成二進制再進行後續的運算,5的二進制位是0000 0101,向右移兩位就是把101右移後兩位,正數左邊第一位補0負數補1,等於乘於2的n次方,結果爲1
~(取反運算符)
取反就是把要處理的數先轉換爲二進制,1爲0,0爲1,10 的二進制位是0000 1010,取反以後就是1111 0101,值爲-11
>>>(無符號右移運算符)
正數無符號右移
無符號右移運算符和右移運算符的主要區別在於負數的計算,由於右移運算符是高位補0,移多少位補多少個0
15的二進制是0000 1111,右移兩位就是0000 0011,最終值爲3