您的位置:首页 > 其它

^   按位异或(XOR)

2015-10-20 21:35 246 查看
按位异或运算符(^):在二进制中,当两个操作数的对应位相同时置0,否则为1。例如:

a:0111 1010 b:0101 1010 a^b=0010 0000;

题1.编写程序,交换两个数的内容,要求:创建临时变量。

#include<stdio.h>
int main()
{
int a;
int b;
int temp;
scanf("%d%d",&a,&b);
temp=a;
a=b;
b=temp;
printf("a=%d,b=%d\n",a,b);
return 0;
}
输入:10 8结果:a=8 b=10
题2.编写程序,交换两个数的内容,要求:不创建临时变量(使用异或运算)。
#include<stdio.h>
int main()
{
int a; //10=1011
int b; // 8=1000
scanf("%d%d",&a,&b);
a=a^b; //a=0011
b=b^a; //b=1011
a=a^b; //a=1000
printf("a=%d,b=%d\n",a,b);
return 0;
}
输入:10 8
结果:a=8 b=10
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息