3 & 4
&:同為1結(jié)果為1,否則為0
0000 0000 0000 0000 0000 0000 0000 0011
0000 0000 0000 0000 0000 0000 0000 0100
---------------------------------------
0000 0000 0000 0000 0000 0000 0000 0000 -> 0
4 | 8
|: 一方為1結(jié)果便為1,否則為0
0000 0000 0000 0000 0000 0000 0000 0100
0000 0000 0000 0000 0000 0000 0000 1000
---------------------------------------
0000 0000 0000 0000 0000 0000 0000 1100 -> 12
~9
~:取反,0變成1,1變成0 ->要得到最后結(jié)果必須再計(jì)算補(bǔ)碼(反碼+1)
0000 0000 0000 0000 0000 0000 0000 1001
---------------------------------------
1111 1111 1111 1111 1111 1111 1111 0110 ->得到反碼,下面回算補(bǔ)碼(即減1取反)
---------------------------------------
1111 1111 1111 1111 1111 1111 1111 0101 ->-1
---------------------------------------
0000 0000 0000 0000 0000 0000 0000 1010 ->取反結(jié)果為10,取反碼的時(shí)候以1開頭,即為負(fù)數(shù),所以結(jié)果為-10
下面是-10在java中的表示:
0000 0000 0000 0000 0000 0000 0000 1010
1111 1111 1111 1111 1111 1111 1111 0101 +1
1111 1111 1111 1111 1111 1111 1111 0110
8 ^ 23
^:異或, 不同為1,相同為0
0000 0000 0000 0000 0000 0000 0000 1000
0000 0000 0000 0000 0000 0000 0001 0111
---------------------------------------
0000 0000 0000 0000 0000 0000 0001 1111 -> 31
4 << 3
<<:左位移,4的二進(jìn)制向左移動(dòng)3位,右邊補(bǔ)0
0000 0000 0000 0000 0000 0000 0000 0100
---------------------------------------
0000 0000 0000 0000 0000 0000 0010 0000 -> 32
5 >> 9
>>:右位移, 5的二進(jìn)制向右移動(dòng)9位,左邊補(bǔ)0
0000 0000 0000 0000 0000 0000 0000 0101
---------------------------------------
0000 0000 0000 0000 0000 0000 0000 0000 -> 0