//用宏实现一个整形奇偶位交换
//例如6为0000..0110,交换完为0000..1001,即为9
#include <stdio.h>
#define EXCHANGE(num) ((num&(0x55555555))<<1)|((num&(0xaaaaaaaa))>>1) //取出奇数位左移,取出偶数位右移,最后相加
int main()
{
printf("%d\n", EXCHANGE(6)); //9
printf("%d\n", EXCHANGE(0)); //0
printf("%d\n", EXCHANGE(-1)); //-1
printf("%d\n", EXCHANGE(-2)); //-3
return 0;
}
【C语言】用宏实现一个整形奇偶位交换
最新推荐文章于 2023-05-15 16:27:19 发布