位運算不完全總結

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的相反數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章