zoukankan      html  css  js  c++  java
  • 不用第三方变量交换两个数的值

    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

                 

  • 相关阅读:
    作业5.1 四则运算----封装
    作业四
    作业2 (完)
    作业3
    作业二。。
    数独
    回答自己的提问
    《一个程序猿的生命周期》读后感
    阅读13-17章
    阅读10,11,12章
  • 原文地址:https://www.cnblogs.com/huangzs/p/9661851.html
Copyright © 2011-2022 走看看