异或交换两个数的原理证明
算法
通过异或运算交换两个数
a ^= b
b ^= a
a ^= b
证明
由异或定义易得:
异或运算满足结合律, 交换律
x ^ x = 0
x ^ 0 = x
设x1 = a,x2 = b
x1 ^= x2
x1: a ^ b
x2: b
x2 ^= x1
x1: a ^ b
x2: b ^ a ^ b = a
x1 ^= x2
x1: a ^ b ^ a = b
x2: a
异或交换两个数的原理证明相关推荐
- C语言异或交换两个数的原理解析-大厂面试题:不使用第三变量交换两个数的值
常用操作交换两个数的值 常用的交换两个数值的方法一般是采用第三个变量,这种方法简单易懂,用代码举例 int main() {//交换两个整形变量int a = 3;int b = 5;int c = ...
- 利用位运算和指针实现的交换两个数的程序
位运算是C语言的一大特色,利用异或运算可以实现交换两个数,原理是一个整数与另外一个数进行两次异或运算仍然是其本身,基本原理用式子表达如下: (1) A ^ A = 0; (2) A = A ^B; ( ...
- java 不用中间变量_java异或运算不使用中间变量交换两个数(Java版)详细分解...
Java的异或运算^,这个小不点"^"就是Java的异或运算符,其特性如下:真^假=真假^真=真 假^假=假 真^真=假,它却是说明了Java异或运算的基本法则,那就是:只要两个条 ...
- 【java】java 如何不使用第三个变量来交换两个数的值
文章目录 1.概述 2.方案 2.1 算术运算 2.2 位运算 1.概述 今天是一个悲伤的一天,我的悲伤逆流成河.非常非常的悲伤.主要是有这个一个面试题.如何不使用第三个变量来交换两个数的值. 考官说 ...
- 用按位异或运算符交换两个数,不引入第三个变量
2019独角兽企业重金招聘Python工程师标准>>> 用按位异或运算符交换两个数,不引入第三个变量 void swap(int &a , int &b) { a = ...
- python交换两个值原理_python 两数交换新写法原理
今天学python,突然发现没有swap函数,那怎么交换两个数呢,难道手写交换,那效率太差了 我们看一下实例 a = 1b= 2a,b=b,aprint(a,b) 其实很简单的原理,然而我却琢磨了半天 ...
- C语言实现交换两个数
方法一:最普通方法--建立临时变量 思路分析:建立一个临时变量,通过temp=a,a=b,b=temp来实现交换. 缺点:这只是一种假交换,由于这只是在函数内部临时变量间的交换,所以当函数退出,函数栈 ...
- 详解交换两个数的五种思路
目录 •写在前面 •利用新变量 •利用加减法 •利用乘除法 •利用异或 •利用移位 •写在前面 交换两个数?听起来这不是很简单嘛,感觉没什么好讲的.不过这么想是因为很多时候都想简单了,没有把编程的巧妙 ...
- 不创建临时变量交换两个数,这才是高手
不创建临时变量交换两个数?这才是高手 1.基本介绍 1.代码编写 总结 1.基本介绍 交换两个数,想必大家都很熟悉,也很容易写出来就可以实现,即创建一个临时变量,就可以完成两个数的交换,然后更牛逼的大 ...
最新文章
- 密码学是如何保护区块链的
- lucene源代码学习之 lucene的经典打分过程
- Objective-C基础教程学习笔记(九)内存管理
- 前端---JavaScript基础2
- dockerclient 查看端口占用_docker 端口被占用问题解决
- Linux运维系统工程师系列---13
- java 泛型嵌套泛型_Java泛型嵌套
- spring cloud微服务分布式云架构-commonservice-config配置服务搭建
- java 字体有哪些_java字体有哪些
- java6 3_2018.3.6 Java web notes:
- Eclipse开发程序,取得新的工程后,启动Web服务出错原因总结
- Source Insight 的使用
- 安装最新LAMP环境(CentOS7+PHP7.1.5+Mysql5.7)
- 数据结构和算法(十三)排序算法
- abaqus 输出TSAIW和一些Load Surface Traction的细节
- 嵩天老师python123测验_嵩天老师python123测验4: 程序的控制结构 (第4周)
- 模电和数电复习资料//2021-2-18
- 干货 | Elasticsearch Nested 数组大小求解,一网打尽!
- 苹果圆圈怎么设置_苹果手机白色圆圈怎么弄
- 电脑声音太小怎么办?_陕南赤子_新浪博客