编写一个宏,将数字的奇数位和偶数位交换
给一个数分别“与”上0x55555555和0xAAAAAAAA,可以得到该数的奇数位和偶数位
#include
#define EXCHANGE(x) ((((x)&0x55555555)<<1)| (((x)&0xAAAAAAAA)>>1))
int main()
{
int a = 0;
printf("请输入一个数:");
scanf("%d", &a);
int x = EXCHANGE(a);
printf("%d\n", x);
return 0;
}
本文介绍了一个用于C语言的宏定义,该宏能够通过位操作实现数字中奇数位与偶数位的交换。通过使用特定的掩码值,宏能够区分并重新组合奇数位和偶数位。
459

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



