異或 在Java中的運用

2021-09-19 11:56:43 字數 1155 閱讀 6444

1、異或簡介

異或(^)操作運算規則為相同的為0,不同的為1

2、異或操作進行數字交換

我們現在有兩個數a,b,我們可以通過異或操作對他們倆的數字進行交換

a = a ^ b

b = b ^ a

a = a ^ b

這樣,這兩個數字的值就進行了交換

我們舉個例子,比如a = 97和b = 33

97的二進位制為1100001

33的二進位制為100001

首先進行 a = a ^ b

1 1 0 0 0 0 1

0 1 0 0 0 0 1

1 0 0 0 0 0 0

我們得到 a = 1000000 既 64

我們在進行b = b ^ a

0 1 0 0 0 0 1

1 0 0 0 0 0 0

1 1 0 0 0 0 1

我們得到 b = 110001 既 97

再進行最後的a = a ^ b

1 0 0 0 0 0 0

1 1 0 0 0 0 1

0 1 0 0 0 0 1

得到了a = 1 0 0 0 0 1 既33

這樣,我們就為完成了兩個數的交換

3、異或操作進行數字篩選

因為異或的特性,對於相同的二進位制數為0,不同的為1

這樣,不難得出n ^ n ^ n … ^ n = 0,也就是說相同的數進行異或為0,不論有多少個

1 ^ 1 = 0

1 ^ 1 ^ 2 ^ 2 ^ 3 = 3

這一特性可以運用在leetcode的389題找不同上面

4、異或操作進行數字篩選

在二進位制中,所有的偶數末尾都是0,所有的奇數末尾都是1

如果乙個數和1進行異或,如果是偶數的話,他的大小會+1,如果為奇數的話大小會-1

異或在C C 程式設計中的應用

本文主要介紹c c 程式設計中兩個巧用異或解決問題的方法。一 巧用異或進行取反運算 假設安排乙個周健身計畫表,每天的可選專案包括 running,riding,swimming。現用乙個enum表示周一到週日,如下 enum day 上述enum用二進位製上的一位,表示這一天是否有安排。不同位可以疊...

java中 異或運算子的運用

的位運算子中有乙個叫異或的運算子,用符號 表示,其運算規則是 int i 15,j 2 system.out.println i j i j 執行結果是 i j 13.分析上面程式,i 15轉成二進位制是1111,j 2轉成二進位制是0010,根據異或的運算規則得到的是1101,轉成十進位制就是13...

Java中異或運算子 及其運用

異或運算 是以二進位制資料為基礎進行運算的。也就是說當 中使用到異或運算時,都會先將兩個條件進行轉換,轉換成二進位制資料後,再進行運算。異域中同位如果值相同 都是0或者都是1 則為0,不同 乙個是0,乙個是1 為1。在這裡我們舉個例子 int a 3 int b 8 int c a b c的值為a和...