注意:1. 位操符的操作数必须是整数
2.整数是以二进制的形式存放在内存中的,存放的是二进制的补码;
& // 按位与 :对应的二进制位中有 ’ 0 ‘, 则为 ’ 0 ‘, 无 ‘ 0 ’, 则为 ’ 1 ‘ 。
3 二进制位:00000000000000000000000000000011
5 二进制位:00000000000000000000000000000101
3 & 5 结果:00000000000000000000000000000001 换位十进制:1
| // 按位或 :对应的二进制位中有 ’ 1 ‘, 则为 ’ 1 ‘, 无 ‘ 1 ’, 则为 ’ 0 ‘ 。
3 二进制位:00000000000000000000000000000011
5 二进制位:00000000000000000000000000000101
3 | 5 结果: 00000000000000000000000000000111 换位十进制:7
^ // 按位异或 :对应的二进制位中,相同为 “ 0” , 不同为 “ 1 ”。
3 二进制位:00000000000000000000000000000011
5 二进制位:00000000000000000000000000000101
3 ^ 5 结果: 00000000000000000000000000000110 换为十进制:6
#include<stdio.h>
int main(void)
{
int a = 3;
int b = 5;
int c = a & b;
printf("c = %d\n", c);
printf("c = %d\n", a | b);
printf("c = %d\n", a ^ b);
return 0;
}
//按位与结果: c = 1
//按位或结果:c = 7
//按位异或结果:c = 6