常用的位运算符:与(&),取反(~),或(|),异或(^),左移(«),右移(»)
1. 与(&)操作符,按位与,全为1 时,结果取1
11001
&10011
结果:10001
2. 取反(~),为1,则取0,为0则取1,如:
10010 取反 01101
3. 或(|),两个数均为0时取0,其他情况为1
10010
11100
结果:11110
4. 异或(^),如果某位不同则取1,否则为0。
10010
11100
异或:01110
xor运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(a xor b) xor b = a。异或可用来实现两个数交换,且不需要临时变量。
a=aXORb
b=aXORb
a=aXORb
5.左移(«),即在数的末尾加N位0,相当于为原数*2的N次方,比直接*2更快
如1100左移三位,则为1100 000
6.右移(»),即去掉末尾的几位数,相当于为原数除以2的N次方。
如110011,右移三位,则为110