package com.cqupt.xxx;
public class Demo {
public static void main(String[] args) {
int a = 111;
int b = 222;
// 方法1: 使用中间变量
Method1(a, b);
// 方法2: 使用加减法
Method2(a, b);
// 方法3:使用乘除法(这里除数不能为0
Method3(a, b);
// 方法4:使用异或法
Method4(a, b);
}
private static void Method1(int a, int b) {
int temp = a;
a = b;
b = temp;
outPrint(a, b);
}
private static void Method2(int a, int b) {
a = a + b;
b = a - b;
a = a - b;
outPrint(a, b);
}
private static void Method3(int a, int b) {
a = a * b;
b = a / b;
a = a / b;
outPrint(a, b);
}
private static void Method4(int a, int b) {
a = a ^ b;
b = a ^ b;
a = a ^ b;
outPrint(a, b);
}
private static void outPrint(int a, int b) {
System.out.println("a: " + a);
System.out.println("b: " + b);
System.out.println("-----------------");
}
}
输出结果:
a: 222
b: 111
-----------------
a: 222
b: 111
-----------------
a: 222
b: 111
-----------------
a: 222
b: 111
-----------------
| 是按位或
^ 是按位异或
& 是按位与
例如:
int x = 5;
int y = 11;
过程:
x=5 (0101二进制)
y=11 (1011二进制)
结果:
x|y = 1111 = 15
x&y = 0001 = 1
x^y = 1110 = 14