位運算符在C裏面並沒有學到,所以算是新知識了,至於用途嘛,我還不太清楚,先來看看吧。
&:
參與運算的兩個數,若相應二進制位數的值都爲1,則該結果值是1,否則是0,類似於“與”,例如:
System.out.println(3 & 5);//結果爲1
運算過程如下:
00000011(3)
00000101(5) &
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
00000001(1)
|:
參與運算的兩個數相應位中只要有一個爲1,則結果就是1,類似於“或”,例如:
System.out.println(3 | 5);//結果爲7
運算過程如下:
00000011(3)
00000101(5) |
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
00000111(7)
^:
參與運算的兩個數相應位相同則結果爲0,否則結果爲1,類似於異或,例如:
System.out.println(3 ^ 5);//結果爲6
運算過程如下:
00000011(3)
00000101(5) ^
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
00000110(6)
~:
表示把每個二進制位的‘1’換成‘0’,把‘0’換成‘1’,類似於取反,例如:
System.out.println(~ 5);//結果爲-6
運算過程如下:
00000101(5) ~
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
11111010(-6)
其實還有'<<','>>','>>>'三個位運算符,不過難度大一點,所以下次再說吧。