嵌入式C语言--C语言运算符

1.算数操作运算

+、-

        CPU一个周期可以实现,A + B 尽量保持AB的类型一致

*、/

        CPU可能需要多个周期完成,甚至要利用软件的模拟方法去实现乘除。

%

        结果范围0~n-1(m%n)。

        应用场景:取范围数时使用;得到n进制的一个个位数;循环数据结构的下标。

2.逻辑运算

        返回结果就是1、0;

        int a = 0;

        if(a)        //假

        int a = -1;

        if(a)        //真

||、&&

        A || B 与 B || A不等价

        A && B 与 B && A不等价

        首先会检查前面的是否成立,再判断是否检查后面的条件。

>、>=、<、<=

        对比位运算中的取反。

        int a = 0x0;

        !a = 1;

        ~a = 0xff;

? :

3.位运算

<<、>>

        左移:乘法*2 二进制下的位移

        m << 1;        m*2

        m << n;        m*(2^n)

        4:        0 0 1 0 0

        8:        0 1 0 0 0

       int a = b * 32 ======> b << 5(编译器自动完成)

        [数据、数字]

        -1 * 2  = -2

        8bit

        源码:1 0 0 0 0 0 0 1                                         1 0 0 0 0 0 1 0

        反码:1 1 1 1 1 1 1 0                                         1 1 1 1 1 1 0 1

        补码: 1 1 1 1 1 1 1 1(计算机存储的是补码)1 1 1 1 1 1 1 0        (左移低位补零)

        右移:符号变量有关

        有符号数左移时符号位不变。

&、|

        & 、|

        A & 0 =====> 0

       &: 屏蔽

        int a = 0x1234;

        a & 0xff00;屏蔽低八位

        A & 1 =====> 1

        &: 取出

        &:清零器

        A | 0 ======>A

        |:保留

        A | 1 ======>1

        |:设置高电平的方法

        设置一个资源的bit5为高电平,其他位不变;

        int a;

        a = a | (0x1 << 5) ;  =========> a = a | (0x1 << n) 第n位置1;

        清除第5位

        int a;

        a = a & (~(0x1 << 5));========>a = a & (~(0x1 << n))第n位置清零;

^、~

       ^:逐位取反,相同为0,相异为1。

        算法

-------------------------------

        交换两个数

        int a = 20;

        int b = 30;

        a = a ^ b;

        b = a ^ b;

        a = a ^ b;

        ~:逐位取反

4.赋值运算

=

+=、-=、&=...

5.内存访问符号

()

        限制符,运算优先级限制。

        函数访问。

[]

        数组

        内存访问的ID符号

{}

        函数体的限制符号

->、.

        ->:地址

        .:变量

&、*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值