目录
1.位操作符
位操作符有:
&——按位与(按二进制位)
|——按位或(按二进制位)
^——按位异或(按二进制位)
注:他们的操作数必须是整数。
1)&——按位与
规则:两个数只有同时为1才为1。
2)| ——按位或
规则:两个数只要其中一个为1则为1。
3)^ ——按位异或
规则:两个数相同则为0,相异则为1。
2. ^ 的使用
题:不能创建临时变量(第三个变量),实现两个数的交换。
方法一:
以上的方法创建了临时变量,不符合题意。
方法二:
理论上,以上的方法可能会出现溢出。(当a达到最大范围,b也达到最大范围,a+b就会出现溢出现象)
方法三:
注意:在实际的开发过程中,当我们需要交换两个变量时,通常使用方法一。
3.练习
编写代码实现:求一个整数存储在内存中的二进制中1的个数。(求补码的二进制中1的个数)
#include<stdio.h>
int main()
{
int count = 0;
int a = 3;
int i = 0;
for (i = 0; i < 32; i++)
{
int b = a >> i;
if (b & 1 == 1)
{
count++;
}
}
printf("count=%d\n", count);
return 0;
}
运行结果是: