Java中的位運算符中有一個叫做異或的運算符,符號為(^)或者 Xor
異或8個字總結(jié) 相同出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
小結(jié): 相同的兩個數(shù)會輸出0既false ,另一個數(shù)為0 則輸出它本身,下面為大家演示兩個不同的數(shù)字
運算規(guī)則
其運算規(guī)則是:在兩個二進制操作數(shù)的相同位中
如a=7; b=4;
a=0111; b=0100; (因為int是占據(jù)32位的,前面的位數(shù)都為0 ,所只展示后4位)
a^b=?
得出 a^b =3
下面為大家詳細講解在不使用第三方的情況下交換兩個屬性中的值
我們要實現(xiàn)的是a=4; b=7;
公式為 a=a^b;
b=a^b;
a=a^b;
第一步分析:
第一步結(jié)束后值為: a=3; b=7;
第二步:b=a^b;
第二步結(jié)束后的值:a=3; b=4;
第三步:a=a^b;
第三步結(jié)束后的值:a=7; b=4;
異或運算有三個特征,一個是0與一個數(shù)做異或操作還是本身,本身與本身做異或操作為0,異或操作還滿足交換率。
利用a^a=0的特點實現(xiàn)這個功能
在一個數(shù)組中找出出現(xiàn)次數(shù)為奇數(shù)的,也可理解為出現(xiàn)一次的;
這里直接上代碼;
這里將會直接輸出 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.
在電腦自帶的計算機中可以輸入十進制直接轉(zhuǎn)換為2進制,大大的加快了我們理解的速度
代碼千萬行,注釋第一行。格式不規(guī)范,報錯兩行淚
-
JAVA
+關(guān)注
關(guān)注
19文章
2975瀏覽量
105149
發(fā)布評論請先 登錄
相關(guān)推薦
邏輯異或的常見誤區(qū)及解決方法
如何利用邏輯異或提高數(shù)據(jù)處理效率
邏輯異或與異或門的工作原理
邏輯異或在網(wǎng)絡(luò)安全中的應(yīng)用實例
邏輯異或和邏輯或的比較分析
邏輯異或運算符在Python中的用法
邏輯異或在數(shù)字電路中的作用
邏輯異或在編程中的使用
邏輯異或的定義和應(yīng)用 邏輯異或與邏輯與的區(qū)別
USB Type-C系統(tǒng)中TPS25947和LM73100的快速角色交換、線性或運算
![USB Type-C系統(tǒng)<b class='flag-5'>中</b>TPS25947和LM73100的快速角色<b class='flag-5'>交換</b>、線性<b class='flag-5'>或</b><b class='flag-5'>運算</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
MATLAB(4)--MATLAB基本運算
華納云:java web和java有什么區(qū)別java web和java有什么區(qū)別
![華納云:<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么區(qū)別<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么區(qū)別](https://file1.elecfans.com/web2/M00/FD/AC/wKgaomaWBouAMAnAAAAglmvluP4293.png)
評論