位运算
&按位与 1&1=1, 1&0=0, 0&1=0, 0&0=0
|按位或 1|1 = 1, 1|0 = 1, 0|1 = 1, 0|0 = 0
^按位异或 1^1=0, 1^0=1, 0^1=1, 0^0=0
~按位非 ~1 = 0, ~0 = 1
移位运算
<<左移 1111<<1=1110
>>右移 1111>>1=0111
技巧:
1.交换ab
a=a∧b;
b=b∧a;
a=a∧b;
2.逆转二进制数
for(i = 0; i < 32; i ++){
res = (res << 1) + (n & 1);
n = n >> 1;
}
3.把32位十进制整数转换成16进制数
while(num != 0){
int tmp = num & 15;
if(tmp > 9)
System.out.println((char)(tmp - 10 + 'A'));
else System.out.println(tmp);
num >>= 4;
}