int a = 1;
int b = 2; // 已知两个变量
int temp = a; //定义临时变量
a = b;
b = temp;//利用临时变量完成了交换
int a = 1; // 0000 0001
int b = 2; // 0000 0010
// 异或: 相同为false, 不同为true.
// 在二进制中, 按位异或的操作, 值相同为0, 值不同为1
a = a ^ b;
/*
0000 0001
0000 0010
--------- ^
0000 0011 a
*/
b = a ^ b;
/*
0000 0011
0000 0010
--------- ^
0000 0001 b
*/
a = a ^ b;
/*
0000 0011
0000 0001
--------- ^
0000 0010 a
*/
System.out.println(a); // 0000 0010, 即2
System.out.println(b); // 0000 0001, 即1
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |