交換變量有很多種方法,而異或運算就是其中一種。相較於其他方法,這種方法不用使用中間變量。下面我們看一下這種算法:
首先我們先介紹一下異或運算,異或運算是一種邏輯運算,數學符號是⊕,相當於or。
異或運算是一種二進制運算:
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
兩者相等爲0,不等爲1
原理(Java演示):
輸入數值:
3 5
代碼演示:
import java.util.Scanner;
public class Exclusiveor {
public static void main(String[] args) {
System.out.print("請輸入兩個整數:");
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
a = a ^ b; // 011與101進行異或運算,得到110(6),a的值爲6
b = a ^ b; // a的值已經變爲6,110與101進行異或運算,得到011(3),b的值爲3
a = a ^ b; // 110與011進行異或運算,得到101,a的值爲5
System.out.println(a + " " + b); // 數值交換得到結果
}
}
輸出結果:
5 3