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

      解法一:加减法

        int a = 1, b = 10;
        a = a + b;    // a = 1 + 10 = 11 
        b = a - b;    // b = 11 - 10 = 1
        a = a - b;    // a = 11 - 1 = 10
    

      这种解法是比较容易想到的方法,也比较好理解。

      解法二:异或法

        int a = 1, b = 10;
        a = a ^ b;    // a = 0001 ^ 1010 = 0100
        b = a ^ b;    // b = 0100 ^ 1010 = 0001 = 1
        a = a ^ b;    // a = 0100 ^ 0001 = 1010 = 10
    

      异或运算:相同为1,不同为0。在计算机中存储方式是二进制,利用二进制的异或运算能交换两个数的值。

  • 相关阅读:
    集群资源队列监控:Grafana
    1
    3月9号
    jmx
    日常笔记
    nsenter命令简介
    一天2小时
    postgresql Centos7部署
    笔记5
    1
  • 原文地址:https://www.cnblogs.com/bobobjh/p/15449148.html
Copyright © 2011-2022 走看看