兩個變量交換值的方法 按位異或 快速交換兩個變量。


第一種方法,大家會借助第三個變量來實現:

如:tmp=A;A=B;B=tmp;

這種方法需要借助第三變量來實現;

 

第二種方法是利用加減法實現兩個變量的交換,

如:A=A+B;B=A-B;A=A-B;

但是 如果 A+B 超出 A的返回 ,就會出錯!極為不推薦 此方法

 

 

第三種方法是得用位異或運算來實現,也是效率最高的一種,在大量數據交換的時候,效率明顯優於前兩種方法,

如:A=A^B;B=A^B;A=A^B;

原理:利用一個數異或本身等於0和異或運算符合交換率。

 

 

 

異或的意思就是:不同 才可以得1,否則為0

// 異或
// 0^0=0
// 1^1=0
// 1^0=1
// 0^1=1

 

 


        假如 a = 3,b = 4。想將a和b的值互換,可以用一下賦值語句實現:

        a = a ^ b;
        b = b ^ a;
        a = a ^ b;

此方法 完美,推薦使用。

 

 

http://www.blogjava.net/landon/archive/2010/03/12/315301.html

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM