a,b交换与比较
2016-02-20 14:53
405 查看
1.有两个变量a、b,不用判断语句,找出其中较大的数
2.将a,b交换,不用任何中间变量
方法一:加减法(可能会溢出)
a = a + b;
b = a - b;
a = a - b;
方法二:乘除法(可能溢出,b不为0)
a = a * b;
b = a / b;
a = a /b;
方法三:异或法
a = a ^ b;
b = a ^ b;
a = a ^ b;
异或满足结合律,(a ^ b) ^ b = a ^ (b ^ b) = a ^ 0 = a
参考:异或的性质及运用
int max = ((a + b) + abs(a - b)) / 2
2.将a,b交换,不用任何中间变量
方法一:加减法(可能会溢出)
a = a + b;
b = a - b;
a = a - b;
方法二:乘除法(可能溢出,b不为0)
a = a * b;
b = a / b;
a = a /b;
方法三:异或法
a = a ^ b;
b = a ^ b;
a = a ^ b;
异或满足结合律,(a ^ b) ^ b = a ^ (b ^ b) = a ^ 0 = a
参考:异或的性质及运用
相关文章推荐
- android 机器耗电
- 使用HttpUrlConnection取代Apache Http Client
- HDOJ 1108 最小公倍数
- 显示被遮挡的人物或者物体
- 22.2 波形音频 II
- 简单可定制业务的线程类
- Android:requestFeature() must be called before adding content
- hdu 1061 Rightmost Digit
- ActionScript 3.0 学习(十五) 基于as的聊天程序,服务器端和客户端
- iOS学习_Lesson02_分支结构
- hdu 1258和ZJU 1711 Sum It Up(dfs经典索搜)
- linux下VFS
- ReactiveCocoa简介6,添加附加操作(Adding side-effects)
- android Camera 中添加一种场景模式
- 用python写一个简单的爬虫功能
- HDU 2476 String painter(区间dp)
- 2.20存储过程学习笔记
- 异常2
- linux samba安装及配置
- Android 开发绕不过的坑:你的 Bitmap 究竟占多大内存?