如何在不使用临时变量的情况下交换两个整数值

本文关键字:交换 整数 两个 情况下 变量 | 更新日期: 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