对于更多紧凑的数据,C 程序可以用独立的位或多个组合在一起的位来存储信息。文件访问许可就是一个常见的应用案例。位运算符允许对一个字节或更大的数据单位中独立的位做处理:可以清除、设定,或者倒置任何位或多个位。也可以将一个整数的位模式(bit pattern)向右或向左移动。
C语言提供了六种位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
位运算应用口诀
清零取反要用与,某位置一可用或
若要取反和交换,轻轻松松用异或
运算规则
1、&与运算:对应两个二进位均为1时,结果位才为1,否则为0。(有假为假==0)
2、|或运算:对应的两个二进位有一个为1时,结果位就为1,否则为0。(有真为真==1)
3、^ 异或运算:对应的二进位不同时为1,否则为0。(不同为真==1,相同为假==0)
注意:(1)相同整数相^的结果是0
(2)一个数^另一数两次结果不变
(3)整数相^跟顺序无关