用宏交换一个数的奇数位和偶数位
#include<stdio.h>
#define CHANGE(x) ((x & 0xAAAAAAAA) >> 1) | ((x & 0x55555555) << 1) //分别提取奇数位和偶数位,在分别左移,右移实现交换
int main()
{
int x=0;
printf("Please Enter:");
scanf("%d",&x);
printf("%d\n",CHANGE(x));
return 0;
}
2.用宏比较两个数的大小,输出较大值
#include<stdio.h>
#define COMPARE(x,y) (((x)>(y))?(x):(y))
int main()
{
int x=0;
int y=0;
printf("Please Enter:");
scanf("%d%d",&x,&y);
printf("the larger number is %d\n",COMPARE(x,y));
return 0;
}
本文介绍如何使用宏来实现位操作中的奇偶位交换及两个整数间的大小比较。通过具体的C语言代码示例,展示了宏定义的灵活性及其在实际应用中的效率优势。

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



