位运算是指对二进制位进行的运算
每个二进制位中只能存放0或1
因此,位运算就是对二进制数的运算
通常,将一个数据用二进制数表示后,最右边的二进制位称为最低位(第0位),最左边的二进制位为最高位
在C语言中共提供了6种位运算符,位运算符意义&|^~按位与按位或按位异或按位取反左移右移(1)在这6种位运算符中,其中按位取反是单目运算符,只有一个运算对象,其他均为双目运算符,有两个运算对象
(2)位运算的运算对象只能是整型(包括int,short,long和unsigned)或字符型数据,而不能是实型数据
(3)各位运算符的优先级比较分散,与其他运算符一起,其优先级从高到低如下:逻辑非(
)按位取反(~)算术运算符左移运算符()关系运算符按位与运算符(&),按位异或运算符(^),按位或运算符(|)&&与||赋值运算符1.“按位与”运算符(&)“按位与”的运算符为“&”
其运算规则是:若两个运算对象的对应二进制位均是1,则结果的对应位是1,否则为0
利用“按位与”运算可以实现以下功能:(1)取出数据中指定的位(2)将数据中的指定位清零2.“按位或”运算符(|)“按位或”的运算符为“|”
其运算规则是:若两个运算对象的对应二进制位中有一个是1,则结果的对应位是1,否则为0
3.“按位异或”运算符(^)“按位异或”的运算符为“^”
其运算规则是:若两个运算对象的对应二进制位不相等,则结果的对应位是1,否则为0
“按位异或”运算具有以下几个性质:(1)使数据中的某些位取反,即将0变为1,1变为0
(2)同一个数据进行异或运算后,其结果为0
利用异或运算的这个性质,可以将变量清零
(3)可以实现交换两个变量的值:4.“按位取反”运算符(~)“按位取反”的运算符为“~”
其运算规则是:将运算对象中的各二进制位值取反,即将0变为1,1变为