1、按位与
int a=5;
int b=7;
a&b;
2、按位异或
a^b;
Trick利用异或操作实现两个数的交换:
a=a^b;
b=a^b;
a=a^b;
3、移位运算
左移
a<<b
将a左移b位,低位补零
右移
右移时符号位(即最高位)将一起移动,并且大多数c/c++编译器规定,如多原符号位为1,则右移时最高位就补1,原符号位为0,则右移时最高位就补0;
实际上右移n位相当于除2^n,并且结果向小的方向取整;
a>>b
printf("%d %d",3>>2,-15>>2);
结果:
1,-4
4、按位或
a|b