按位与运算符&,有点和前面学过的逻辑与(&&)运算符类似,只有一个&,都是同为1则为1。不同的是按位相互运算。如3&5,运算过程如下:3 0000 0000 0000 0000 0000 0000 0000 0011
5 0000 0000 0000 0000 0000 0000 0000 0101
& ------------------------------------------
0000 0000 0000 0000 0000 0000 0000 0001
可以看到3&5的结果即十进制1
大家可以尝试其他数值实验,代码如下:#include
int main()
{
int a;
a=3&5;
printf("a=%d\n",a);
return 0;
}
运行结果如下:a=1
按位与运算符的作用:
清零
我们可以对某一个数与0进行按位与运算,由于两个位都为1才为1,因此最终全部位都变为0,起到清零的作用
取指定位
如某些存储场景下,“第1~3位表示xxxx“”,我们需要取出1~3位,则可以让原数值与数字7进行按位与运算,得到的结果即是原数值的1~3位的值。
判断奇偶
可以发现,数字的奇偶取决于二进制位的最低一位是1还是0,因此只需要与1按位与运算,判断是1是0即可得知奇偶。
希望大家多多尝试