温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C语言的运算符用法介绍

发布时间:2021-08-26 18:20:03 来源:亿速云 阅读:165 作者:chen 栏目:开发技术

这篇文章主要讲解了“C语言的运算符用法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言的运算符用法介绍”吧!

目录
  • 一、算数运算符(数学运算) 

    • + -

    • * / %

  • 二、逻辑运算符(判断真假)

    • || &&

    • > >= < <=

    • !

    • ? : 三元运算符

  • 三、位运算符(重点) 

    • << 左移

    • >> 右移

    • & | ^ ~ 与 或 异或 取反

  • 四、赋值运算符

    • 五、内存访问符号

      •  () 限制符/函数访问符

      • [] 内存访问ID符

      • {} 函数体限制符

      • -> 地址访问符 

      • .变量访问符 

      • &取址符

      • *取值符


    一、算数运算符(数学运算) 

    + -

    左右数据同一数据类型

    * / %

    注意

    乘/除法在很多CPU中无法实现,或者需要多个CPU周期去实现嵌入式开发中,乘/除法可能需要第三方乘法库才能实现乘/除法可能导致程序的移植性变差

    %取模 场景:

    获取范围数值时,如:int result=(x%100)+1; 则result值的范围为[1.100]得到m进制的个位数,如8进制个位数: int a=x%8;介于取模的特性,可以用在循环数组结构中获取下标,0,1,2,3,0,1,2,3,0,1,2…

    二、逻辑运算符(判断真假)

    || &&

    逻辑或 逻辑与

    > >= < <=

    大于 大于等于 小于 小于等于

    !

    ? : 三元运算符

    三元运算符

    三、位运算符(重点) 

    << 左移

    运算场景:
    左移1位,数据=数据2
    m左移n位,m=m2ⁿ

    >> 右移

    运算场景:
    右移1位,数据=数据/2
    m右移n位,m=m/2ⁿ

    注意:
    signed和unsigned的右移动是不同的
    signed修饰的变量的右移做while条件且变量为负数时,while会进入死循环(因为最高位=1,是符号位,永远无法右移为0)

    & | ^ ~ 与 或 异或 取反

    & 与
    bit中任意一位与0相&,该位都为0
    场景:

    屏蔽清零器 a=a | (~(0x1<<n))
    int a=0x1234;
    //屏蔽低8位
    a=a& 0xff00;
    int a=0x1234;
    //清零器,清除bit第五位的高电平,转为低电平,其他位不变
    a=a & (~(0x1<<5));

    | 或
    bit中任意一位与1相|,该位都为1
    场景:

    保留/设置:设置高电平的方法,如设置指定位为高电平,其他位不变 a=a | (0x1<<n)
    int a=3;
    //使用左移可以更方便快速的让第五位bit处于高电平,而且不影响其他位(嵌入式中bit最右边通常读作第0位)
    a= a| (0x1<<5)

    ^ 异或
    相同为0,不同为1
    1.通常用于数据加密算法,AES SHA1等
    2.数据交换(排序中的一种方法)

    a=a^b;

    b=a^b;
    a=a^b;

    ~ 取反
    按位取反

    四、赋值运算符

    = += -= &= ...
    赋值运算实际上是组合运算的缩写,非原子性操作,volatile内存可见特性会失效(实际上执行了两步,只靠volatile无法解决)

    五、内存访问符号

     () 限制符/函数访问符

    1.限制符

    (a+b)*c

    1.函数访问符

    void fun();

    [] 内存访问ID符

    内存访问ID符(C语言中并不局限于数组的访问,通过指针可以访问整个内存空间)

    a[0]
    a[1]

    {} 函数体限制符

    函数体限制符

    -> 地址访问符 

    .变量访问符 

    &取址符

    &a;

    *取值符

    *a;

    感谢各位的阅读,以上就是“C语言的运算符用法介绍”的内容了,经过本文的学习后,相信大家对C语言的运算符用法介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI