如何在不使用临时变量的情况下交换两个整数值
本文关键字:交换 整数 两个 情况下 变量 | 更新日期: 2023-09-27 18:26:04
// Swapping value between two integer without using temp variable.
int a = 5;
int b = 7;
Console.WriteLine("Before Swap.");
Console.WriteLine("value of A is: {0}", a);
Console.WriteLine("value of B is: {0}", b);
Console.ReadLine();
操作/操作:交换前。A 的值为:5A 的值为:7
交换后。A 的值为:7A 的值为:5
那么如何在不使用临时变量的情况下交换两个整数值呢?
尝试:
a = a + b;
b = a - b;
a = a - b;
第一种方法
a = a + b;
b = a - b;
a = a - b;
第二种方法
a ^= b;
b ^= a;
a ^= b;
a = a + b;
b = a - b;
a = a - b;
您需要使用 XOR 运算符:
a = a ^ b;
b = a ^ b;
a = a ^ b;
这是有效的,因为应用两次具有相同值的 XOR 会取消操作:
a ^ b ^ b => a