练习宏的题目

本文详细介绍了如何在C语言中使用宏定义来实现整数的加减乘除、交换值以及判断奇偶性,并展示了位运算符如与、或、非、异或和同或的应用实例。
摘要由CSDN通过智能技术生成

练习宏的题目

定义一个宏,用于计算两个整数的

定义一个宏,用于计算两个整数的

定义一个宏,用于计算两个整数的

定义一个宏,用于计算两个整数的

定义一个宏,用于交换两个变量的值

定义一个宏,用于判断两个数的大小,输出最大的值

定义一个宏,用于判断两个数的大小,输出最大的值:

定义一个宏,用于判断一个整数是否为偶数

宏可以在C语言程序中使用例子:

#include <stdio.h>

#define ADD(x, y) ((x) + (y))
#define SUB(x, y) ((x) - (y))
#define MUL(x, y) ((x) * (y))
#define DIV(x, y) ((x) / (y))
#define MAX(x,y) ((x>y)?(x):(y))
#define MIN(x,y) ((x<y)?(x):(y))
#define SWAP1(x,y) {x=x+y;y=x-y;x=x-y;}
#define SWAP2(x,y) {x=x^y;y=x^y;x=x^y;}
//#define EVEN(x)  ((x)&0x01)
#define EVEN(x) (((x)%2== 0) ? 1 : 0)
int x = 6;
int y = 3;

int main()
{
     int z;
        //z = y & 0x01; //可以把y改成x进行测试
      z = y | 0x01; //可以把y改成x进行测试
    
    int sum = ADD(x, y); // sum = 8
    int sum1 = SUB(x,y);
    int sum2 = MUL(x, y);
    int sum3 = DIV(x, y);
    int sum4 = EVEN(x);
    int sum5 = MIN(x, y);
    printf("最大值Max number is:%d\n", MAX(x, y));
    printf("最小值Min number is:%d\n", MIN(x, y));
    printf("交换前:x=%d,y=%d\n", x, y);
    SWAP1(x, y);
    printf("交换后:x=%d,y=%d\n", x, y);
    SWAP2(x, y);
    printf("再次交换后:x=%d,y=%d\n", x, y);
    printf("和为:% d\n" , sum);
    printf("差为:% d\n", sum1);
    printf("积为:% d\n", sum2);
    printf("商为:% d\n", sum3);
    printf("输出1为偶数% d\n", sum4);
    printf("111偶数111: % d\n", z);

    unsigned char a = 0x03, b = ~a;

    printf("a=0x%X\n", a);
    printf("b=0x%X\n", b);
}

位运算符:

与:& ,AND,有0出0,全1出1

3

0011

6

0110

1

0001

1

0001

结果

1

结果

0

//#define EVEN(x)  ((x)&0x01)

宏定义使用按位与判断最低位结果为1则为奇数,0为偶数

或:| ,OR,有1出1,全0出0

3

0011

6

0110

|

1

0001

1

0001

结果

0011

结果

111

非: ! ,NOT,有1出0,有0出1

非最好只操作一个位,控制单片机的高低电平

3

0011

6

0110

!

结果

1100

结果

1001

与非:NAND,先按与的操作,然后结果取反

或非:NOR,先按或的操作,然后结果取反

或非:NOR,先按或的操作,然后结果取反

异或:^  , XOR,相异为1,相同为0

同或:XNOR,相同为1,相异为0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值