题:定义两个整数变量a,b,请交换这两个数的值(要求使用多种方案)
一.定义两个整数变量a,b,使其交换,可借助中间变量
int a = 10;
int b = 5;
int temp;
temp = a;
a = b;
b = temp;
二.借助“先加后减”操作,不生成临时变量
a = 20;
b = 15;
a = a + b;
b = a - b; //a
a = a - b; //b
System.out.printIn("a的值为" + a +",b的值为" + b);
三.异或法(变量使整数的交换)
a=20;
b=15;
a=a^b;
b=a^b;
a=a^b;
System.out.printIn("a的值为"+ a +",b的值为" + b)
异或法运算的性质:
1.两个相同的变量异或结果为0,即a^a=0;
2.变量和0异或结果为自身,即a^0=a;
3.异或的运算可以又交换性,即a^b=b^a;
4.异或的运算有结合性,即a^b^c=(a^b)^c;