位运算符在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)
其实还有'<<','>>','>>>'三个位运算符,不过难度大一点,所以下次再说吧。