用异或运算交换两个数
来源:互联网 发布:js当前时间年月日 编辑:程序博客网 时间:2024/06/07 23:20
平常交换两个数一般是利用一个中间变量,其实可以利用异或^也可以实现交换,而且效率更快哦!
代码如下:
void Swap(int& a,int& b){ if(a!=b){ a^=b; b^=a; a^=b; }}
原理:利用相同的数异或必为0,异或满足交换率和任何数和0异或都等于本身。
比如:
1.a=a^b;
2.b=b^a=b^(a^b)=b^b^a=0^a=a;
3.a=a^b=a^(b^a)=b^a^a=b^0=b;
证毕。
0 0
- 用异或运算交换两个数
- 异或运算交换两个数
- 异或运算实现两个数的交换
- 异或运算实现两个数的交换
- 异或运算实现两个数的交换
- 异或运算实现两个数的交换
- java异或运算交换两个数的陷阱
- 异或运算实现两个数的交换
- 异或运算实现两个数的交换
- 异或运算实现两个数的交换
- 异或运算实现两个数的交换
- 异或运算实现两个数的交换
- 异或运算实现两个数的交换
- 异或运算实现两个数的交换
- 异或交换两个数
- C语言(^)位异或运算符运算符 交换两个数位置
- 异或运算交换两个整数
- 用异或实现两个数的交换的问题
- wolfssl之aes加密文件算法
- React-Native初体验二(window环境下实现启动页)
- 异常检测原理与实验
- 何为宏调用?
- 1.linux--cp
- 用异或运算交换两个数
- DSP 55xx操作外围寄存器简便方法
- java web中的重定向与转发
- Activiti 学习笔记12:分配个人任务
- Java设计模式—工厂方法模式&抽象工厂模式
- 软件充值网(www.RJCZ.net)一个按使用时间售卖软件的网站,欢迎入驻
- 我所了解的Chrome
- LeetCode #56 题解报告
- JavaScript中的柯里化(currying)