如何优雅的交换两个数的值? 按位异或
如何优雅的交换两个变量的值?
中间变量
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
个人博客: | https://blog.nanshaobit.top |
CSDN: | https://blog.csdn.net/LZ_nanshao |
码云: | https://gitee.com/nanshaobit |
Github: | https://github.com/nanshaobit |