java位運算符包括
&(與) AND
|(或) OR
^(異或) XOR
~(非) NOT
位移運算符包括
>>(右移)
<<(左移)
>>>(右移,左邊空出的位以0填充)
顧名思義,位運算符用於位運算,那就只能對整型或者字符型進行運算。而除了~(非)是一元運算符以外其餘的都爲二元運算符。
全部位運算都會把值轉爲二進制進行運算
&(與)
運算規則:0&0=0 0&1=0 1&0=0 1&1=1
即:兩位同時爲1時,結果爲1,不然爲0
javascript
Java代碼 java
結果打印爲
1
011
101
解析:3的二進制爲011,5的二進制爲101,與操做結果爲001。轉爲十進制是1。
|(或)
運算規則: 0|0=0 0|1=1 1|0=1 1|1=1
即:參加運算的兩個對象只要有一個爲1,其結果就爲1
app
Java代碼 spa
結果打印爲
7
011
101
解析:3的二進制位011,5的二進制位101。或操做結果爲111。轉爲10進製爲7
^(異或)
運算規則:1^0=0 0^1=1 1^0=1 1^1=0
即:參加運算的兩個對象,若是兩個個相應位爲「異」(值不一樣),則該位結果爲1,不然爲0
對象
Java代碼 ip
結果打印爲
6
011
101
解析:3的二進制位011,5的二進制位101。或操做結果爲110。轉爲10進製爲6
~(非)
運算規則:~1=0 ~0=1
即:對一個二進制數按位取反,即0變爲1,1變爲0
~運算符的優先級比算數運算符、關係運算符、邏輯運算符和其餘運算符都高
<<(左移)
將一個運算符對象的各二進制位所有左移諾幹位(左邊的二進制位丟棄,右邊補0)
操做數每左移一位,至關於該數乘以2
get
Java代碼 flash
結果打印爲
12
11
1100
解析:此運算符的意思就是把3的二進制位所有左移兩位,右邊補2個0。3的二進制位11,左移兩位後,右邊補2個0就是1100。1100轉爲10進製爲12。
說到底左移操做就至關於2的2次方×3。 每左移1位次方就增1
>>(右移)
將一個數的各二進制位所有右移諾幹位,正數左補0,負數左補1,右邊丟棄。
操做數每右移一位,至關於該數除以2
it
Java代碼 io
結果打印爲 4 1001 100 解析:9的二進制爲1001,右移1位後,左正數補0,右邊丟棄。結果爲 0100。轉爲10進制後爲4。