用异或实现两个数的交换
交换两个数的值??很简单啊,在定义一个中间变量不就行了么
是的,那是正确的,可以实现,我再补充一个刚学到的方法->异或
话不多说,直接上代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 4;
int b = 5;
a = a^b;
b = a^b;
a = a^b;
printf("a=%d\n", a);
printf("b=%d\n",b);
return 0;
}
先把数写成二进制,然后按位取反
0000 0100 (a=4)
0000 0101 (b=5)
a=a^b;
0000 0001 (a=1)
b=a^b;
0000 0100 (b=4)
a=a^b;
0000 0101 (a=5)