不用第三方变量交换两个数的值

Posted 黄增松的技术博客

tags:

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

1.利用两数之和减去另一个数的方式:

    NSInteger a=3,b=5;

    a=a+b;

    b=a-b;

    a=a-b;

    NSLog(@"a=%ld,b=%ld",a,b);

 

打印:a=5,b=3

 

2.利用位运算 ^ (异或):

异或的特点是:一个数据a与另一个数据b做异或运算之后,变成了另外一个数c,再读取这个数据就不是原来的数据了,我们如果再拿这个数据c和数据b异或一次,这个数据又变回原来的数据a。

即:a^b^b=a;   a^b^a=b

所以我们可以利用这个特点交换两个数据:

    NSInteger a=3,b=5;

    a=a^b;

    b=a^b;

    a=a^b;

    NSLog(@"a=%ld,b=%ld",a,b);

打印:a=5,b=3

             

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

Python两个变量的值进行交换的方法

如何不运用第三方变量实现两个数的交换

php不用第三个变量,交换两个数的值

Java小案例——交换两个数值的三种方法

Java不借助第三方变量交换两个变量的值

交换两个变量的值