常见位运算

1.不用临时变量交换两个数

void swap(int *a,int *b){     

    (*a)^=(*b)^=(*a)^=(*b);   

}  

即:

a ^= b;  

b ^= a;  

a ^= b;  

 

2.乘以2的m次方

int mulTwoPower(int n,int m){//计算n*(2^m)  

    return n<<m;  

 

3.判断一个数的奇偶性

bool isOddNumber(int n){  

    return (n & 1) == 1;  

}  

4.判断一个数是不是2的幂

bool isFactorialofTwo(int n){  

    return (n & (n – 1)) == 0;   

5.求两个整数的平均值

int getAverage(int x, int y){  

        return (x+y) >> 1;   

点赞