C++位运算
1、按位与(&)
int a=3, b=-2, c=a&b;(int 整型是四个字节,一个字节八个位,即比特)
a 0000 0000 0000 0000 0000 0000 0000 0011
b 1111 1111 11111 1111 1111 1111 1111 1111
c 0000 0000 0000 0000 0000 0000 0000 0010
2、按位或(|)
3、按位异或(^)(相同为0,不同为1)
eg:交换a和b的值
int a=1,b=2;
a=a^b;
b=a^b;
a=a^b;
4、按位取反(~)
eg: int a=2,b=~a
5、左移(<<)
eg1: int a=15, x=a<<3
eg2: short int a=32767, b=a<<1
5、右移(>>)
eg: short int a=-2, b=a>>2
* 无论是左移还是右移,原变量a的值不变