首頁 >Java >Java入門 >深入理解java中的異或運算符

深入理解java中的異或運算符

王林
王林轉載
2019-11-26 10:20:444230瀏覽

深入理解java中的異或運算符

Java中的位元運算子中有一個叫做異或的運算符,符號為(^)或Xor

異或8個字總結相同出0不同出1

int a=1;
int b=1;
System.out.println(a^b);

這裡則輸出0

int a=12;
int b=0;
System.out.println(a^b);

這裡則輸出12

小結: 相同的兩個數會輸出0既false ,另一個數為0 則輸出它本身,以下為大家示範兩個不同的數字

相關影片教學推薦:java線上教學

運算規則

#其運算規則是:在兩個二進位運算元的相同位元中

如:a=7; b=4;

a=0111; b=0100; (因為int是佔據32位的,前面的位數都為0 ,所只展示後4位)

a^b=?深入理解java中的異或運算符

得出a^b =3

下面為大家詳細講解在不使用第三方的情況下交換兩個屬性中的值

我們要實現的是a=4; b=7;

公式為a=a^b;
b=a^b;

a=a^b;

第一步分析:深入理解java中的異或運算符

第一步結束後值為: a=3; b=7;

第二步:b=a^b;深入理解java中的異或運算符

第二步結束後的值:a=3; b=4;

第三步:a=a^b;深入理解java中的異或運算符

##第三步驟結束後的值:a=7; b=4;


異或運算有三個特徵,一個是0與一個數做異或操作還是本身,本身與本身做異或操作為0 ,異或操作也滿足交換率。

利用a^a=0的特性來實現這個功能,在一個陣列中找出出現次數為奇數的,也可理解為出現一次的;

這裡直接上程式碼;

private static void ddd() {
		int a[] = { 22, 38, 38,5, 22, 4, 4, 11, 11 };
		int t = 0;
		for (int i = 0; i < a.length; i++) {
			t ^= a[i];
		}
		System.out.println(t);
	}

這裡將會直接輸出5

以下是一些異或的基本知識,有興趣的可研究一下;

1. a ^ b = b ^ a

2. a ^ b ^ c = a ^ (b ^ c) = (a ^ b) ^ c;

#3. d = a ^ b ^ c 可以推出a = d ^ b ^ c.

4. a ^ b ^ a = b.

更多相關文章教學推薦:java入門學習

####

以上是深入理解java中的異或運算符的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除