zoukankan      html  css  js  c++  java
  • 两个变量交换值的方法 按位异或 快速交换两个变量。

    第一种方法,大家会借助第三个变量来实现:

    如:tmp=A;A=B;B=tmp;

    这种方法需要借助第三变量来实现;

    第二种方法是利用加减法实现两个变量的交换,

    如:A=A+B;B=A-B;A=A-B;

    但是 如果 A+B 超出 A的返回 ,就会出错!极为不推荐 此方法

    第三种方法是得用位异或运算来实现,也是效率最高的一种,在大量数据交换的时候,效率明显优于前两种方法,

    如:A=A^B;B=A^B;A=A^B;

    原理:利用一个数异或本身等于0和异或运算符合交换率。

    异或的意思就是:不同 才可以得1,否则为0

    // 异或
    // 0^0=0
    // 1^1=0
    // 1^0=1
    // 0^1=1


            假如 a = 3,b = 4。想将a和b的值互换,可以用一下赋值语句实现:

            a = a ^ b;
            b = b ^ a;
            a = a ^ b;

    此方法 完美,推荐使用。

    http://www.blogjava.net/landon/archive/2010/03/12/315301.html

  • 相关阅读:
    OpenCV 简介
    无缝滚动
    Date 与 switch的运用
    js object(对象)
    arr.sort()排序方法
    删除
    评分
    延时提示框
    数字相加求和
    自定义右键菜单
  • 原文地址:https://www.cnblogs.com/ayanmw/p/3423712.html
Copyright © 2011-2022 走看看