異或運算交換兩個數的數值

交換變量有很多種方法,而異或運算就是其中一種。相較於其他方法,這種方法不用使用中間變量。下面我們看一下這種算法:

首先我們先介紹一下異或運算,異或運算是一種邏輯運算,數學符號是⊕,相當於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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章