C++中的位运算符的优先级如下,从高到低排列:
1. `~`(按位取反)
2. `<<`(左移)
3. `>>`(右移)
4. `&`(按位与)
5. `^`(按位异或)
6. `|`(按位或)
请注意,位运算符的优先级低于算术运算符、比较运算符和逻辑运算符。当优先级相同时,运算符从左到右进行计算。
以下是一个简单的示例,展示了如何使用位运算符:
```cpp
#include
int main() {
int a = 5; // 二进制表示:0101
int b = 3; // 二进制表示:0011
int result1 = a & b; // 按位与:0001,即十进制的1
int result2 = a | b; // 按位或:0111,即十进制的7
int result3 = a ^ b; // 按位异或:0110,即十进制的6
int result4 = ~a; // 按位取反:1010,即十进制的-6(有符号整数)
int result5 = a << 2; // 左移两位:10100,即十进制的20
int result6 = a >> 1; // 右移一位:0010,即十进制的2
std::cout << "Result1: "<< result1<< std::endl;
std::cout << "Result2: "<< result2<< std::endl;
std::cout << "Result3: "<< result3<< std::endl;
std::cout << "Result4: "<< result4<< std::endl;
std::cout << "Result5: "<< result5<< std::endl;
std::cout << "Result6: "<< result6<< std::endl;
return 0;
}
```
在这个示例中,我们使用了按位与、按位或、按位异或、按位取反、左移和右移运算符。