#include <iostream>
using namespace std;
int swapOddAndEvenBits(int x)
{
return ( ((x & 0xaaaaaaaa) >> 1) | ((x & 0x55555555) << 1));//用不同的掩码分别提取奇数位与偶数位,奇数位右移1位变成偶数位,偶数位左移1位变成奇数位,然后按位或
}
int main()
{
cout << swapOddAndEvenBits(10) << endl;//10,1010变成0101,即5
getchar();
return 0;
}
交换一个整数的相邻奇数位与偶数位(即第0位与第1位交换,第2位与第3位交换...)
最新推荐文章于 2020-09-10 17:52:43 发布