Ex:与二进制值1010相似,然后在交换对位位置值0101
之后答案 0 :(得分:8)
int pairwise_bit_swap(int a) {
return ((a & 0x55555555L) << 1) | ((a & 0xAAAAAAAAL) >> 1);
}
答案 1 :(得分:1)
unsigned char swapped = ((original & 85) << 1) | ((original & 170) >> 1);
答案 2 :(得分:0)
您可以使用提到的方法here
答案 3 :(得分:0)
您可以使用&gt;&gt;改变位。
答案 4 :(得分:0)
如果你想将奇数位置位交换为偶数位置(如交换对位1,2,3,5,6和7 8)
unsigned char a,x,y,z;
a = 2 + 4 + 8 + 128;
x = a&amp; 170;
y = a&amp; 85;
z =(x>&gt; 1)|(y <&lt; 1);
Z就是答案。
同样我们可以交换16位等等。请详细说明上面的示例场景...
答案 5 :(得分:0)
((x << 1) & 0xAAAAAAAA) |( (x >>1) & 0x55555555)
其中x为数字。