嵌入式C语言学习笔记-运算符

算术操作运算
*/
int b=10;
int a=b*10;//CPU可能有多个周期,甚至要利用软件的模拟方法来实现惩罚,或者调用第三方库--》移植困难
int a=b+10;//CPU一个周期可以处理
​
%求模
n%m=res,结果为[0,m-1]
​
应用场景:
1.取一个范围的数:
给一个随机数,得到一个1~100的数字
(m%100)+1;
​
2.得到m进制的个位数
​
3.循环数据结构的下标

逻辑运算
真与假的选择
返回结果1/0
​
||  &&
注意:A||B不等于B||A  A&&B不等于B&&A   短路特性
​
~按位取反
!不等于这个值
​
? : 表达式

位运算
移位符号 左移,右移
<< 左移:乘法 左移一位相当于*2(二进制的移位)
    符号问题:不用考虑符号问题
    
​
>> 右移:除法 右移一位相当于/2(二进制的移位)
    右移结果与符号变量有关
    正确的写法:unsigned int a;
    当有符号数右移,最高位 正数补0 负数补1还是补0是根据编译器来决定的
    
    当编译器规定右移最高位补1时
    int a=xxx;//一个负数
    while(a){
        a=a>>1;
    }
    //这是一个死循环,因为负数右移最高位补1,a永远不可能为0
    
    

& | ^ ~与 或 异或 取反
&:与
1.
    A & 0 =0; 作用:清除
    A & 1 =A; 作用:取出
    屏蔽低八位,取出高八位
    int a=0x1234;
    a & 0xff00;
2.
    & : 清零器clr
    清除bit5
    int a;
    a =(a&~(0x1<<5));
​
​
|:或
1.
    A | 0 =A; 作用:保留
    A | 1 =1; 作用:设置set
    设置bit5为高电平
    int a;
    a =(a|(0x1<<5));
2.
    & : 设置器
    
^ :亦或 
    相同为假,相异为真
    交换两个数,不引入第三个数:
    int a=20;
    int b=30;
    
    a = a^b;
    b = a^b;
    a = a^b;
    
    算法 AES 加密算法
    
~ : 取反
    注意:32位的常量情况下
    0xf0 取反---》 0xffff ff0f
    

赋值运算
=

+= 、-=、&=……

内存访问符号
()圆括号 
限制符 (a+b)*c;
函数访问符号  fun();
​
[]方括号
数组
内存访问的ID符号
​
{}大括号
函数体的限制符
​
-> 地址访问 
.  变量访问
​
&取地址符
*解引用
​

欢迎批评指正。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值