将一个数中的偶数位bit和奇数位bit交换
如:21(010101) 变为 42(101010)
方法:
用0xaaaaaaaa提取出偶数位,右移一位
用0x55555555提取出奇数位,左移一位
将上诉两个操作的结果进行位或操作
简单代码:
int SwapOddEvenBits(int n)
{
return ((n&0xaaaaaaaa)>>1) | ((n&0x55555555)<<1);
}
测试用例:
int N = 21;
cout<<"Swap Odd and Even Bits : "<<SwapOddEvenBits(N)<<endl;
本文介绍了一种简单的方法来交换一个整数中偶数位和奇数位的比特。通过使用特定的位掩码和位移操作,可以实现整数中比特位的高效交换,对于计算机科学和编程领域的读者具有实用价值。
3147

被折叠的 条评论
为什么被折叠?



