异或
在平常的編程中,很少用到算法(反正我是這樣,只顧著實現業務需求了),所以,我的代碼總的來說是毫無價值的。怎么才能讓自己代碼變得有點意思呢,今天給大家介紹個運算符"^",異或運算符。有的時候用點運算符的小技巧,可以讓自己的代碼“蓬蓽生輝”喔!:-D
首先,我先介紹一下,什么是異或運算符。簡單點來說,異或就是相同為0,不同為1,它是32位二進制數使用的運算符,我們在實際使用中,計算的時候都是要轉換成二進制的。下面,我用一個圖來介紹什么是異或,大家一看就明白了。
相信大家現在可以明白異或了吧!
下面我用一個簡單的實例,通過比較,更清楚深入的了解異或。
題目:請把兩個整數進行交換。
在我們初次學習Java的時候,進行兩個數之間的交換,首先會想到使用臨時變量,于是,方案一就是采用第三方變量實現交換。
1 int a = 10; 2 int b = 20; 3 4 int temp = a; 5 a = b; 6 b = temp;
采用第三方變量實現是最簡單也是最容易理解的,但是能不能不使用第三方變量呢?方案二就是通過數學上基本運算,實現了交換。
1 int a = 10; 2 int b = 20; 3 4 a = a + b; //a=30 5 b = a - b; //b=10 6 a = a - b; //a=20
這個方法是不是很巧妙呢?但是!它是有缺點的,那就是如果a+b的值超出了int的范圍,就會有數據溢出,所以,有沒有更好的方法呢?當然有,異或運算符!下面方案三就是介紹異或運算符的巧妙使用。
1 int a = 10; 2 int b = 20; 3 4 a = a ^ b; 5 b = a ^ b; //b = a ^ b ^ b = a 6 a = a ^ b; //a = a ^ b ^ a = b
第三個方法是不是很贊呢!當然,展示給大家的只是很簡單的例子,在實際應用中,還是需要仔細加慎重的去選擇的。謝謝。
總結
- 上一篇: 波士顿动力机器人学会了后空翻和拳击?假视
- 下一篇: sudo apt install 遇到关