在 C 语言中的位运算 位运算符的含义 运算符 ~ << >> & ^ | 含义 按位求反 左移 右移 按位与 按位异或 按位或 优先级 1 2 2 3 4 5 1:运算符(~)是位运算符中唯一的一个单目运算符,运算对象再运算符的右边。 2:左移(<<)是双目运算符,它的左边是移动对象,右边是整型表达式,代表左 移的位数。左移时,右端补 0,左端移出的部分舍弃、 3:右移(>>)是双目运算符,它的左边是移动对象,右边是整型表达式,代表右 移的位数。 右移时,右端移出的的数舍弃,左端分两种情况:对于无符号正整数,高位补 0, 对于负整数,高位补 1。 4: 按位与(&)是把参加运算的两个运算数按对应的二进制位分别进行与运算, 当两个相应的位都为 1 时,结果为 1,否则为 0。 5:按位异或(^):如果两个运算数相应的二进制位相同则结果为 0,否则为 1. 6:按位或(|): 只要两个相应的二进制位中有一个为 1,则结果为 1,只有当 两个位都是 0 的时候结果才为 0。 位运算规则:先将两个运算数右端对齐,再将位数短的一个运算数向高位扩 充(正数左侧补 0,负数补最左侧补 1) ,然后就可以对相应的位进行位运算了。