位运算的操作对象只能是整型或字符型数据
C语言提供6种运算符:
& 按位与
| 按位或
^ 按位异或
~ 按位取反
<< 按位左移
>> 按位右移
复合赋值运算符:
&=、|=、^=、<<=、>>=
一、按位与运算
同一为一、其余为零
1&1=1
1&0=0
0&1=0
0&0=0
二、按位或运算
有一说一,无一为零
1|1=1
1|0=1
0|1=1
0|0=0
三、按位异或运算
相同为零,相异为一
1^1=0
1^0=1
0^1=1
0^0=0
四、按位取反运算
对一个数按位取反得到的值为该数+1后再乘以-1
五、按位左移运算
格式:数<
对一个十进制数左移n位后得到的值为该数乘以2n的积
六、按位右移运算
格式:数>>n
功能:将二进制位按位依序右移n位
对一个十进制右移n位后得到的值为该数除以2n的商
若该数为一个负数并且不能被2n整除则得到的数为商加-1