位运算不完全总结

1.判断奇偶数

a&1=0; //偶数
a&1=1; //奇数

2.求平均值

(a&b)+((a^b)>>1);  //a和b的平均数,结果为整型数

3.判断是否为2的幂

((x&(x-1))==0)&&(x!=0);  //1为是,0为不是

4.交换两个整数

a^=b^=a^=b;  //交换a和b的值

5.计算绝对值

int abs(int x) {
	int y;
	y = x >> 31;
	return (x ^ y) - y;  //或者(x+y)^y
}

6.2的n次方

1<<n; //表示2的n次方

7.乘以2的n次方

a<<n; 

8.除以2的n次方

a>>n;

9.求相反数

(~x+1);  //x的相反数
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章