您的位置:首页 > 其它

位运算

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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: