您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關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 則輸出它本身,下面為大家演示兩個不同的數字
運算規則
其運算規則是:在兩個二進制操作數的相同位中
如:a=7; b=4;
a=0111; b=0100; (因為int是占據32位的,前面的位數都為0 ,所只展示后4位)
a^b=?
得出 a^b =3
下面為大家詳細講解在不使用第三方的情況下交換兩個屬性中的值
我們要實現的是a=4; b=7;
公式為 a=a^b;
b=a^b;
a=a^b;
第一步分析:
第一步結束后值為: a=3; b=7;
第二步:b=a^b;
第二步結束后的值:a=3; b=4;
第三步:a=a^b;
第三步結束后的值: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中的異或運算符的用法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。