题目:
将下面变量 a 和 变量 b 的值 通过运算,进行调换
解题思路:
public class Test {
/**
* 将下面变量 a 和 变量 b的值 通过运算,进行调换
*
*/
public static void main(String [] args) {
int a = 10;
int b = 20;
//方法一
int c; //定义一个中间变量
c = a; //把 a 赋值给c
a = b; //把 b 赋值给a
b = c; //把 c 赋值给b
System.out.println("a:"+a);
System.out.println("b:"+b);
//方法二
a = a+b;
b = a-b;
a = a-b;
System.out.println("a:"+a);
System.out.println("b:"+b);
//方法三
/**
* 原文 1010
* 密钥 0011
* 密文 1001
* 在密钥 0011
* 获得原文1010
*
* 不使用新的变量,交换连个变量的值
*/
//a 是密文
a = a ^ b;
b = a ^ b; //我要把a赋值给b;所以a是原文 b是密钥 密文异或密钥b
//前面已经把a赋值b了 所以b是密钥
a = a ^ b; //我要把b赋值给a;所以b是原文 b是密钥 密文异或密钥b
System.out.println("a:"+ a);
System.out.println("b:"+ b);
}
}