码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-09-17 14:36:28      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:第三方   位运算   tab   convert   col   span   ble   数据   另一个   

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

             

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

标签:第三方   位运算   tab   convert   col   span   ble   数据   另一个   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!