首页 > 其他 > 详细

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

时间:2018-09-17 14:24:48      阅读:172      评论:0      收藏:0      [点我收藏+]

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

             

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

原文:https://www.cnblogs.com/huangzs/p/9661851.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!