一、位运算
按位计算
位运算的操作对象只能是整型或字符型数据。
C语言提供6种位运算符:
位运算不产生进位
&按位与
| 或
^异或
~ 按位取反
<
>>右移
复合赋值运算符(11):
&=、|=、=、<<=、>>=
1、按位与运算(&)
两个相应的二进制位都是1时,它们按位运算后的结果才为1,不则为0。
1&1=1 全1为1
1&0=0 有0为0
0&1=0
0&0=0
作用:清零。
2、按位或运算(|)|
两个相应的二进制位中只要有一个为1,则它们按位或运算后结果为1。
1|1=1 有1为1
1|0=1 全0为0
0|0=0 按位加
作用:将特定位置1。
3、按位异或运算(^)
当两个相应位同为1或同为0时,按位异或运算结果为0;两个相应位一个为1另一个为0时,按位异或运算结果为1。
1^1=0 相异为1
1^0=1 相同为0
0^1=1
0^0=0
4、按位取反运算(~)
按位取反运算符是一个单目运算符。按位取反后0变1,1变0。
注:
计算技巧:对一个数按位取反得到的值