按位取反‘~’位操作符里唯一的单目操作符,功能:把目标的二进制位按位取反,即:使得每一位上的0变成1,1变成0。

#include<stdio.h>
int main()
{
int a =1;//00000000000000000000000000000001
int b =~a;//11111111111111111111111111111110
printf("%d\n",b);
return 0;
}

      按位与'&',功能:对两数所对应的二进制位进行”与“运算,即:两位上不同为0,两数相同为其中一数;

#include<stdio.h>
int main()
{
int a = 5;//00000000000000000000000000000101
int b = 1;//00000000000000000000000000000001
int c = a & b;//00000000000000000000000000000001
printf("c = %d\n", c);//11为1,00为0,10为0,01为0
return 0;
}

       按位或‘|',功能:对两数所对应的二进制位进行“或”运算,即:两位同位“0”,结果才为“0”,否则为1。

#include<stdio.h>
int main()
{
int a =1;//00000000000000000000000000000001
int b =2;//00000000000000000000000000000010
int c =a|b;//00000000000000000000000000000011
printf("%d\n",c);
return 0;
}

     按位异或’^‘,功能:对两数对应的二进制位分别进行“异或‘运算’,相同为0,相异为1。

#include<stdio.h>
int main()
{
int a =1;//00000000000000000000000000000001
int b =2;//00000000000000000000000000000010
int c =a^b;//00000000000000000000000000000011
printf("%d\n",c);
return 0;
}