#include<stdio.h>
#define Swap(n) (n=((n&0xaaaaaaaa)>>1)+((n&0x55555555)<<1))
int main()
{
int a = 10;
Swap(a);
printf("%d\n", a);
return 0;
}
假设n有8个比特位
以此类推到32个比特位,(n=((n&0xaaaaaaaa)>>1)+((n&0x55555555)<<1))
#include<stdio.h>
#define Swap(n) (n=((n&0xaaaaaaaa)>>1)+((n&0x55555555)<<1))
int main()
{
int a = 10;
Swap(a);
printf("%d\n", a);
return 0;
}
假设n有8个比特位
以此类推到32个比特位,(n=((n&0xaaaaaaaa)>>1)+((n&0x55555555)<<1))