多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 位运算符 位运算符作用于位,并逐位执行操作。&、 | 和 ^ 的真值表如下所示: ![](https://img.kancloud.cn/97/4e/974ea3c20df0d6d9ff191de59ec2c9be_710x186.png) 假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示: A = 0011 1100 B = 0000 1101 \----------------- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~A  = 1100 0011 下表显示了 C 语言支持的位运算符。假设变量**A**的值为 60,变量**B**的值为 13,则: ![](https://img.kancloud.cn/28/88/28886851d352909fe5e347de4d4935c0_707x813.png) ### 实例 请看下面的实例,了解 C 语言中所有可用的位运算符: ``` #include <stdio.h> int main() { unsigned int a = 60; /* 60 = 0011 1100 */ unsigned int b = 13; /* 13 = 0000 1101 */ int c = 0; c = a & b; /* 12 = 0000 1100 */ printf("Line 1 - c 的值是 %d\n", c ); c = a | b; /* 61 = 0011 1101 */ printf("Line 2 - c 的值是 %d\n", c ); c = a ^ b; /* 49 = 0011 0001 */ printf("Line 3 - c 的值是 %d\n", c ); c = ~a; /*-61 = 1100 0011 */ printf("Line 4 - c 的值是 %d\n", c ); c = a << 2; /* 240 = 1111 0000 */ printf("Line 5 - c 的值是 %d\n", c ); c = a >> 2; /* 15 = 0000 1111 */ printf("Line 6 - c 的值是 %d\n", c ); } ``` 当上面的代码被编译和执行时,它会产生下列结果: ~~~ Line 1 - c 的值是 12 Line 2 - c 的值是 61 Line 3 - c 的值是 49 Line 4 - c 的值是 -61 Line 5 - c 的值是 240 Line 6 - c 的值是 15 ~~~