使用宏将一个数字的奇偶位交换,用宏求两个数中较大值

时间:2021-10-20 23:18:07

宏将一个数字的奇数位和偶数位交换

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#define CHANGE(x) (((x&(0x55555555))<<1) | ((x&(0xAAAAAAAA))>>1)) //提取x的奇数位并左移一位 偶数位左移一位 
#include<stdio.h> 
int main()  
{  
    int x = 0; 
    printf("请输入数字\n");
    scanf("%d",&x);
    printf("交换后:%d\n", CHANGE(x));  

    return 0;  
}  

使用宏实现两个数中求较大值

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#define MAX(a,b) ((a)>(b)?(a):(b))
int main()
{
     int s = 0;
     int x = 0;
     int max = 0;
     printf("请输入两个数字\n");
     scanf("%d%d",&s, &x);
     max = MAX(s, x);
     printf("%d", max);
     return 0;
}