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

    算数方法

    假设 a= 10 b =20 

    先让 a = a+b // a = 30 

    再让b= a-b // 30-20 =10 完成对b的赋值

    然后a = a-b // 30 -10 // 20

    1 function swap(int &$a, int &$b) {
    2     $a = $a+$b;
    3     $b = $a-$b;
    4     $a = $a-$b;  
    5 
    6 }

    方法2,逻辑运算(异或):

    关于异或运算要牢记两个原则:

    任何一位二进制数同 1 异或都会变成另外一个(0 同 1 异或的结果是 1,1 同 1 异或的结果是 0)
    任何一位二进制数同 0 异或都保持不变(0 同 0 异或的结果是 0,1 同 0 异或的结果是 1)

    x^=y; //x先存x和y两者的信息
    y^=x; //保持x不变,利用x异或反转y的原始值使其等于x的原始值
    x^=y; //保持y不变,利用x异或反转y的原始值使其等于y的原始值
  • 相关阅读:
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
  • 原文地址:https://www.cnblogs.com/tl542475736/p/8593498.html
Copyright © 2011-2022 走看看