zoukankan      html  css  js  c++  java
  • 使用位运算交换两个值,不用临时变量

    这个位运算的应用,在学C程序设计时谭浩强书上有提到过。

    假如a=3,b=4。想将a和b的值互换,并且不借助临时变量,可以用以下位运算操作实现:

    a=a∧b;b=b∧a; a=a∧b;∧代表异或XOR。

    具体过程如下:
    a=011,b=100
    a=a∧b;a=111 (a∧b 的结果,a 变成 7)
    b=b∧a;b=011 (b∧a 的结果,b 已变成 3)
    a=a∧b;a=100 (a∧b 的结果,a 已变成 4)

    PS:借鉴以上的思想,通过如下的赋值操作同样可以实现值互换

    a=a+b; b=a-b; a=a-b

  • 相关阅读:
    JQuery hover鼠标变换
    装饰者模式
    principle04
    Method Injection
    观察者模式
    Java SPI
    Redis--学习01
    OO设计中5大原则
    knowledge
    策略模式
  • 原文地址:https://www.cnblogs.com/pegasus923/p/1908679.html
Copyright © 2011-2022 走看看