应用位异或交换两个变量的值
来源:互联网 发布:音响 知乎 编辑:程序博客网 时间:2024/05/22 16:45
我们知道在程序语言中都有 "^"表示异或,但是我们用到的很少,下面是以Golang语言为例,将a,b的值互换
package mainimport "fmt"//noinspection ALLfunc main() { var a int = 2 var b int = 4 if ( a != b) { // 1.相当于a = a^b,其实就是(a = 10 ^ 100) a ^= b //2.相当于 b = b^a,根据第1步知道 a = a^b,那么下面的等式又可表示为 b = b^b^a,其实一个数异或自己就是0,任何数和0异或就是他本身 //此时就相当于b = 0^a,所以b = a,这里的a就是我们开始定义的 var a int = 2 b ^= a //3.a = a^b 可以推导的是=>a = (a^b)^(b^b^a),因为根据第一步我们知道a = a^b 根据第2步我们知道b = b^(b^a),可以得到的结果就是 //a = b,这里的b就是最初我们定义var b int = 4, a ^= b fmt.Println(a, b) }}
当然程序打印出来的也是:
阅读全文
0 0
- 应用位异或交换两个变量的值
- 不使用第三个变量交换两个变量的值之"异或"的实际应用
- 位“异或”运算在变量交换中的应用及与位“或”的逻辑关系
- 两个变量异或法交换值
- 异或操作交换两个变量的值
- 不使用临时变量交换两个变量的值(异或,加减,乘除)
- java实现位运算交换两个变量的值
- 位运算---不用额外变量交换两个整数的值
- 位运算之两个变量的交换
- 位运算的异或来交换变量
- 用异或来交换两个变量是错误的
- 用异或交换两个变量的分析
- 使用异或运算交换两个变量的危险
- 用异或来交换两个变量是错误的
- 用异或来交换两个变量是错误的
- 使用异或运算对交换两个变量的数据
- 按位异或运算交换两个变量的值原理
- [c语言笔记]关于指针操作中使用异或交换两个变量的值
- hdu-1013 Digital Roots
- 对RecyclerView的item添加点击事件
- 多条目
- 数据结构实验:连通分量个数
- 索引优化
- 应用位异或交换两个变量的值
- spring bean 声明学习
- 【C
- I/O复用
- Image-to-Image Translation with Conditional Adversarial Networks
- 【dubbo】小实例
- POJ 1976-动态规划
- 蓝牙
- JavaWeb复习小知识点(一)