不使用中间变量交换两数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不使用中间变量交换两数相关的知识,希望对你有一定的参考价值。

public static void swap1(Num num)
{

    num.a = num.a + num.b;
    num.b = num.a - num.b;
    num.a = num.a - num.b;
}

使用异或运算符:我们知道,任何数与0异或后仍然为它本身,两个相同的数异或后为0。

static class Num
{
    int a;
    int b;
}

public static void swap2(Num num)
{
    num.a = num.a ^ num.b;
    num.b = num.a ^ num.b;
    num.a = num.a ^ num.b;
}

以上是关于不使用中间变量交换两数的主要内容,如果未能解决你的问题,请参考以下文章

每日一题位运算交换两数

每日一题位运算交换两数

不增加额外变量交换两数

实现两个变量的值交换的三种方法(两种方法不使用中间变量)

不使用中间变量交换两个数

swap的实现(没有中间变量)