zoukankan      html  css  js  c++  java
  • 如何优雅的交换两个数的值? 按位异或

    如何优雅的交换两个变量的值?

    中间变量

    1 int a = 10;
    2 int b = 21;
    3 //     使用中间变量
    4 int t = a;
    5 a = b;
    6 b = t;
    7 
    8 // a 与 b 的值已经交换

    这种属于常规思路,但是好像不够优雅。

    不使用中间变量

    1 int a = 10;
    2 int b = 21;
    3 //     不使用中间变量
    4 a = a + b;
    5 b = a - b;
    6 a = a - b;
    7 
    8 // a 与 b 的值已经交换

    这种貌似比上一种解法优雅一点,但是感觉还差点什么

    按位异或

    1 int a = 10;
    2 int b = 21;
    3 //     按位异或
    4 a = a ^ b;
    5 b = a ^ b;
    6 a = a ^ b;
    7 
    8 // a 与 b 的值已经交换

    这种方法可能看不明白, 自己试一下看看。

    那种方式最优雅?自己做决定吧。

    楠少博客同步更新 :https://blog.nanshaobit.top/90

  • 相关阅读:
    判断一个数是否为素数的方法
    什么是算法?
    table 表格
    状态模式
    设计模式
    观察者模式
    async函数
    JS单线程和异步
    ES6 --- Promise
    浅析flex 布局
  • 原文地址:https://www.cnblogs.com/nanshaobit/p/12464625.html
Copyright © 2011-2022 走看看