& | ^ ~ >> <<

&:按位与运算符,两位同时为“1”,结果才为“1”,否则为0
用途:
1.清零
2.取一个数中指定位

|:按位或运算符,参加运算的两个对象只要有一个为1,其值为1。
1.常用来对一个数据的某些位置1

^:异或运算符,参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0
1.使特定位翻转找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。
2.与0相异或,保留原值

~:取反运算符,参加运算的一个数据,按二进制位进行“取反”运算。
1.使一个数的最低位为零,可以表示为:a&~1

:右移
<<:左移

位运算符与赋值运算符结合,组成新的复合赋值运算符,它们是:
&= 例:a &=b 相当于a=a& b
|= 例:a |=b 相当于a=a |b

= 例:a >>=b 相当于a=a>> b
<<= 例:a<<=b 相当于a=a<< b
^= 例:a ^= b 相当于a=a^ b

例:

=右移
int x=8;//1000
x>>=2;//0010 x=2
<<=左移 跟上面的一样 只不过向左位移 省略……
&=位与
int x=3;//0011
x&=7;0011 &0111 结果 x=3 0011 在二进制上做与运算
^=异或
int x=3;//0011
x=7;00110111 结果 x=4 0100 比较两个位不相同的得1
|=位或
int x=1;//0001
x|=6;//0001 | 0110 结果x=7 0111 位的或运算 两个位只要有一个是1就得1

原文地址:https://www.cnblogs.com/liuqiyun/p/15528058.html