C++位运算
运算符
& 按位与
如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
| 按位或
两个相应的二进制位中只要有一个为1,该位的结果值为1
^ 按位异或
若参加运算的两个二进制位值相同则为0,否则为1
~ 取反
~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1
<< 左移
用来将一个数的各二进制位全部左移n位,低位以0补充,高位越界后舍弃
>> 右移
将一个数的各二进制位右移N位,移到右端的低位被舍弃,高位以符号位填充
运算符优先级
加减 | 移位 | 比较大小 | 位与 | 异或 | 位或 |
---|---|---|---|---|---|
+,- | <<,>> | >,<,==,!= | & | ^ | 丨 |
举例
1100011 | 1100011 | 1100011 | |||
& | 1000010 | 丨 | 1000010 | ^ | 1000010 |
1000010 | 1100011 | 1011110 |
1100011 | 1100011 | 1100011 | |||
~ | 0011100 | <<1 | 1000110 | >>1 | 0110001 |