位操作的应用
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)); }
以上是关于位操作的应用的主要内容,如果未能解决你的问题,请参考以下文章