要求说明:当 a=2,b=4,c=6,d=8时编程求a&c , b|d , a^d , ~a的值。
解:单目运算符 &,|,^,~.都是对对应整数转化成二进制数后按位比较计算
&:两个相应二进位中,都为1,该位为1,否则为0
|:两个相应二进位中,有一个1,该位为1,否则为0
^:两个相应二进位,相同为0,不同为1;
~:单目运算符,作用对二进制数按位取反,0反为1,1反为0;
//普通位运算
#include <stdio.h>
int main(int argc, char **argv)
{
unsigned result;
int a = 2,b = 4, c = 6,d = 8;
printf("a = %d , b = %d , c = %d , d = %d \n",a,b,c,d);
result = a & c; //按位与运算
printf("a&c = %u\n",result);
result = b|d; //按位或运算
printf("b|d = %u\n",result);
result = a^d; //按位异或运算
printf("a^d = %u\n",result);
result = ~a; //取反运算
printf("~a = %u\n",result);
return 0;
}
样例输入输出:
a = 2 , b = 4 , c = 6 , d = 8
a&c = 2
b|d = 12
a^d = 10
~a = 4294967293