一、位與&:
對應的二進制位進行與操作,兩個都爲1才爲1,其他情況均爲0
測試:
System.out.println(5&6);
打印:4
過程:
5表示成:0000 0000 0000 0000 0000 0000 0000 0101
6表示成:0000 0000 0000 0000 0000 0000 0000 0110
進行 & :0000 0000 0000 0000 0000 0000 0000 0100
得到:4
二、位或|:
|操作符,對應的二進制位進行或操作,兩個都爲0才爲0,其他情況均爲1
測試:
System.out.println(5|6);
打印:7
過程:
5表示成:0000 0000 0000 0000 0000 0000 0000 0101
6表示成:0000 0000 0000 0000 0000 0000 0000 0110
進行 | :0000 0000 0000 0000 0000 0000 0000 0111
得到:7
三、位異或^:
^操作符 當對應二進制位值相同,該位爲0 否則爲1
測試:
System.out.println(5^6);
打印:3
過程:
5表示成:0000 0000 0000 0000 0000 0000 0000 0101
6表示成:0000 0000 0000 0000 0000 0000 0000 0110
進行 ^ :0000 0000 0000 0000 0000 0000 0000 0011
得到:3
四、位非~:
~操作符,對每個二進制位的內容求反,即1變成0,0變成1
測試負數:
int a = -5;//101;
System.out.println(~a);
打印:4
過程是這樣的,首先表示出來這個負數
1111 1111 1111 1111 1111 1111 1111 1011(上面已經提到爲什麼這樣表示)
各位取反得到
0000 0000 0000 0000 0000 0000 0000 0100
轉爲10進製得到4