& 与两个位都为1时,结果才为1
| 或两个位都为0时,结果才为0
^ 异或两个位相同为0,相异为1
~ 取反0变1,1变0
<< 左移各二进位全部左移若干位,高位丢弃,低位补0
>> 右移各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)
常用
交换2个数
if (a != b){
a ^= b;
b ^= a;
a ^= b;
}
>> 与 <<
1.位运算 >> 1 等价于 / 2
2.位运算 << 1 等价于 *2
判断奇偶
n&1
为1则为奇数
为0则为偶数