a=a^b;
b=b^a;
a=b^a;作者: 吴扬 时间: 2012-6-19 01:38
同楼上,毕老师的视频里面提到过,有两种方法
1.通过运算来交换
int a = 3;
int b = 8;
a = b-a;//a的值变为5,而b的值仍然为8
b = b-a;//b的值变为3,a的值为5
a = a+b;//b的值为8,a的值相加之后变成8
2.通过异或的方法来交换
int a = 3;
int b = 8;
a=a^b;
b=b^a;// b=b^a=b^(a^b)=a,此时a的值已经赋给b,但是a的结果为a^b
a=b^a;//a=b^a=a^(a^b)=b,完成交换
temp=a; //a的值赋给中间变量temp
a=b; //b的值赋给a
b=temp; //中间变量temp的值也就是a的值赋给b作者: 张建峰 时间: 2012-6-20 13:18
毕老师基础视频02天的
1,通过第三方变量
int a = 3 , b = 8;
int z;
z = a;
a = b;
b = z;
不用第三方变量:
b = b + a;
a = b - a;
b = b - a;
b = b ^ a;
a = b ^ a;
b = b ^ a;
作者: 常佳杰 时间: 2012-6-20 13:24
b = b + a;
a = b - a;
b = b - a;
b = b ^ a;
a = b ^ a;
b = b ^ a;作者: 胡大强 时间: 2012-6-20 13:24
class JaioHuan
{
public static void main(String[] args)
{
int a=8,b=3;
a = a+b; //此时经过运算a=11;
System.out.println(a);//输出a=11;
b = a-b; //b=11-3=8;
a = a-b; //a=11-8=3;
System.out.println(a+"..."+b);