注册 登录
编程论坛 C++教室

”^“符号是什么意思?

雪色朝阳 发布于 2010-03-10 21:34, 617 次点击
#define JH(x,y) x=x^y;y=x^y;x=x^y
#include<stdio.h>
main()
{
int a=3,b=5,c=7;
JH(a,b);
JH(b,c);
JH(a,c);
printf("a=%d,b=%d,c=%d\n",a,b,c);
}



请问上述程序中的^符号是什么意思啊?那第一个x=x^y运算后的结果是多少呢?
5 回复
#2
cnfarer2010-03-11 13:42
" ^ "是异或运算符
#3
cnfarer2010-03-11 13:45

#define JH(x,y) x=x^y;y=x^y;x=x^y
定义了一个实现数值交换的宏
#4
hziee2010-03-12 18:43
按位异或运算符“^”是双目运算符。其功能是将参与运算的两操作数各自对应的二进制为进行异或操作。只有对应的两个二进制位不相同是,结果对应的二进制唯才是1,否则为0.

JH(x,y) x=x^y;y=x^y;x=x^y-----在不使用第三个数,能实现x,y数值的交换.
#5
ltyjyufo2010-03-12 19:55
“^”是按位异或,“&”是按位与,"|"是按位或
#6
雪色朝阳2010-03-14 18:09
回复 4楼 hziee
哦,明白了,谢谢!
1