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