位运算
2015-12-22 10:18
225 查看
0.
运算符优先级
~,!,<< ,>>,&,^,|
1.(X&(X-1))取二进制的个数
2. (x&y)+((x^y)>>1)
两数的平均值
3.两个数相加
int add(int a,int b)
{
if(b ==0)
return a;
int sum,carry;
sum = a^b;
carry = (a&b)>>1;
return add(sum,carry);
}
4.不用if,找出两个数最大者
int max = ((a+b)+abs(a-b))/2
5.函数实现三数取中间数
inline int max(int a,int b) {return a>=b?a:b;}
inline int min(int a,int b){return a<=b?a:b;}
inline int medium(int a,int b,int c)
{
int t1 = max(a,b);
int t2 = max(b,c);
int t3= max(a,c);
return min(t1,min(t2,t3));
}
6.a,b值交换
a=a^b;
b=a^b;
a=a^b;
运算符优先级
~,!,<< ,>>,&,^,|
1.(X&(X-1))取二进制的个数
2. (x&y)+((x^y)>>1)
两数的平均值
3.两个数相加
int add(int a,int b)
{
if(b ==0)
return a;
int sum,carry;
sum = a^b;
carry = (a&b)>>1;
return add(sum,carry);
}
4.不用if,找出两个数最大者
int max = ((a+b)+abs(a-b))/2
5.函数实现三数取中间数
inline int max(int a,int b) {return a>=b?a:b;}
inline int min(int a,int b){return a<=b?a:b;}
inline int medium(int a,int b,int c)
{
int t1 = max(a,b);
int t2 = max(b,c);
int t3= max(a,c);
return min(t1,min(t2,t3));
}
6.a,b值交换
a=a^b;
b=a^b;
a=a^b;
相关文章推荐
- jenkins执行selenium自动化测试浏览器不显示解决方法
- 两种方法解决tomcat的 Failed to initialize end point associated with ProtocolHandler ["http-apr-8080"]
- Android之Dialog列表项对话框
- SQL指令中一些特别值得注意的地方
- python注意事项
- HTML 转义字符
- 仿5sing图片轮播,向5Sing致敬
- Unity3d中文在部分机型显示不全解决方案
- OpenCV参考手册之Mat类详解
- POJ 3414 Pots(水壶)
- hibernate01 和JDBC的优缺点、配置文件、加载流程、自动生成、对象的状态
- jquery序列表单和对象
- Linux下hp打印机驱动hplip分析
- javascript闭包理解(Closure)
- C程序调用shell脚本共有三种方法
- 问题:HttpContext.Current.Session;结果:Session与HttpContext.Current.Session到底有什么区别呢?
- 纠结的rename命令
- Android自定义控件初体验
- Spring 主键序列值获取
- webuploader解决不能重复上传问题