方法一:(加法实现)
#include<stdio.h>
int main()
{
int i = 1,j = 2; //i=01,j=11(二进制数)
i = i+j; //i=i+j,j=j
j = i-j; //i=i+j,j=i
i = i-j; //i=j,j=i
printf("%d ,%d\n",i,j);
return 0;
}
方法二:(乘法实现)
#include<stdio.h>
int main()
{
int i = 1,j = 2; //i=01,j=11(二进制数)
i = i*j; //i = i*j,j = j
j = i/j; //i = i*j,j = i
i = i/j; //i = j,j = i
printf("%d ,%d\n",i,j);
return 0;
}
方法三:(异或实现)
#include<stdio.h>
int main()
{
int i = 1,j = 2; //i=01,j=11(二进制数)
i = i ^ j; //i=10,j=11
j = i ^ j; //i=10,j=01
i = i ^ j; //i=11,j=01
printf("%d ,%d\n",i,j);
return 0;
}
加法实现和乘法实现的缺点是给变量赋值过大时会出现溢出现象。