编码:更改a和b值

时间:2017-03-24 07:01:05

标签: c#

给定a = 6, b = 13,(例如) 如何更改b = 6. a = 13没有第三个整数?

我需要算法或代码。 有很多方法可以做到这一点,但我需要最短的方法。

5 个答案:

答案 0 :(得分:3)

我认为这是最短的

a = a + b;
b = a - b;
a = a - b;

答案 1 :(得分:2)

我认为这是最短的

Interlocked.CompareExchange(ref a, b, b = a);

答案 2 :(得分:1)

你应该记住,这个交换只适用于a + b <= int.Max的情况,所以在生产中我会一直使用临时变量。

int a = 6, b = 13;
a = b + (b = a) - b;

https://dotnetfiddle.net/uNsA5n

这也可以,但性能没有可测量的差异。

a = b ^ (b = a) ^ b;

答案 3 :(得分:1)

对于迟到的回复感到抱歉,您可以在多种操作组合中执行相同操作,将aValue, bValue设为两个值,然后您可以使用以下方式执行交换:

使用+和 -

 aValue = aValue + bValue;  
 bValue = aValue - bValue;  
 aValue = aValue - bValue;  

使用*和/

 aValue = aValue * bValue;  
 bValue = aValue / bValue;  
 aValue = aValue / bValue;  

使用^

 aValue = aValue ^ bValue;  
 bValue = aValue ^ bValue;  
 aValue = aValue ^ bValue;  

结帐Fiddle以查看正在运行的示例

答案 4 :(得分:-1)

你可以用基本的求和和减法来做到这一点

a=a+b; b=a-b; a=a-b;