& 按位与 都为1时则为1,其余为0
| 按位或 都为0时为0,其余为1
^ 按位异或 相同为1,不同为0
利用好这三个 & | ^ << >> 操作符,可以节省内存,提高运行效率
举三个例子:
1.利用死循环重复输出两个值,运用硬皮反正面的道理
#include <stdio.h>
void main()
{
int a=1;
while(1)
{
if((a&1)!=0)
cout<<"偶数"<<endl;
else
cout<<"奇数"<<endl;
a++;
}
结果:
2.不使用中间变量交换两个数的值
三种方法:
1.加法:
x=x+y;
y=x-y;
x=x-y;
2.利用乘法:
x =x*y;
y=x/y;
x=x/y;
3.利用异或^
x=x ^ y;
y=y ^ x;
x=x ^ y;
3. << 与 >> 和乘除法的关系
一个数a,a<<1 相当于乘以2;向左移动几位就相当于乘以了2的几次方;
a>>1;这个相当于除以2;向右移动几位就相当于除以了2的几次方;
所以在写程序的时候不要这样写了:
if (a/2)
这样写比较高效:
if(a>>1)