c语言程序设计题*a^=*b; *b^=*a; *a^=*b;这是一个将a,b交换的语句,但不知道为什么要在=号前面加^ ,

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/29 16:28:09
c语言程序设计题*a^=*b; *b^=*a; *a^=*b;这是一个将a,b交换的语句,但不知道为什么要在=号前面加^ ,
xPJ0}lCm?%}nH2u*jqvkW$MM;7=7w=zY /2SQ@sMي+^:$esb~6|0WȊX<,+J g$#~9|O>gx`zwּѵrٞ~Qr LՕC(R?=` @w4:+Cw !G(DZU,ݘ'IX"VVmZUDɕo'(yCW82J

c语言程序设计题*a^=*b; *b^=*a; *a^=*b;这是一个将a,b交换的语句,但不知道为什么要在=号前面加^ ,
c语言程序设计题*a^=*b; *b^=*a; *a^=*b;这是一个将a,b交换的语句,但不知道为什么要在=号前面加^ ,

c语言程序设计题*a^=*b; *b^=*a; *a^=*b;这是一个将a,b交换的语句,但不知道为什么要在=号前面加^ ,
用到异或的运算法则:
a^a=0;
0^a=a;
a^b=b^a;
a^b^c=a^(b^c)=(a^b)^c;
如题:
*a=*a^*b;
*b=*b^(*a^*b)=*b^*b^*a=0^*a=*a;将*a的值赋给了*b;
*a=(*a^*b)^*a=*a^*a^*b=0^*b=*b;将*b的值赋给*a;