不使用中间变量交换两个变量的值

作者:互联网   出处:控件中国网   2014-11-05 19:21:45   阅读:2

不使用中间变量交换两个变量的值
 
方法1:

view sourceprint?1 int a = 1; 

2 int b = 2; 

3   

4 //交换  

5 a = a + b; 

6 b = a - b;           

7 a = a - b; 

8   

9 Console.WriteLine("a={0} b={1}", a, b);

   

方法2:

view sourceprint?1 int a = 1; 

2 int b = 2;  

3   

4 //交换  

5 a=a^b;  

6 b=b^a;  

7 a=a^b;  

8     

9 Console.WriteLine("a={0} b={1}", a, b);

证明:
       a1=a0^b0;
       b1=b0^a1=b0^(a0^b0)=a0^b0^b0=a0;
       a2=a1^b1=(a0^b0)^a0=b0^a0^a0=b0;
    
原理:

      一个值经过同一个数的两次异或后值不变。  


 

Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat