位操作的应用

Posted Young_For_You

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了位操作的应用相关的知识,希望对你有一定的参考价值。

1.利用位操作求两个整数的平均数

(a&b) + ((a^b) >> 1)

 

 

2.利用位操作来求两个整数之和

int Add(int a, int b)
{
    if (b == 0)
    return a;
    int sum, tmp;
    sum = a^b;
    tmp = (a&b) << 1;
    return Add(sum, tmp);
}

 

3.交换两个数

void Swap(int a, int b)
{
    cout << "Before Swap a = " << a << "  b = " << b << endl;
    a = a^b;
    b = a^b;
    a = a^b;
    cout << "After Swap a = " << a << "  b = " << b << endl;
}

 

 

4.一个数是不是 2 的幂

bool IsTwoPower(int a)
{
    return !(a&(a - 1));
}

 

以上是关于位操作的应用的主要内容,如果未能解决你的问题,请参考以下文章