您的位置:首页 > 其它

变量值的交换——引入新变量做暂存和不用新变量的方法

2011-08-11 13:39 288 查看
引入新变量的方法:

使用情况:当2个变量需要交换相互的值的时候

使用方法:int i1 = 10;
int i2 = 20;
Console.WriteLine("i1={0}",i1);
Console.WriteLine("i2={0}",i2);
int i3;
i3 = i1;
i1 = i2;
i2 = i3;
Console.WriteLine("i1={0}", i1);
Console.WriteLine("i2={0}", i2);
Console.ReadKey();

使用注意:需要引入i3作为i1的暂时存储空间,相当于复制一个i1给i3,然后i1就可以变成i2了,i2的值被拿走后,把i3的值付给i2。

不引入新变量的方法:

方法1:

int a = 1;
int b = 2;

//交换
a = a + b;
b = a - b;
a = a - b;

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

   

方法2:

int a = 5;
int b = 9;

//交换
a = a ^ b;
b = b ^ a;
a = a ^ b;

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;

原理:

一个值经过同一个数的两次异或后值不变。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: