c/c++语言开发共享C语言的运算符你了解吗

目录[]内存访问id符前言自学笔记,没有历史知识铺垫(省略百度部分)c语言运算符的使用一、算数运算符(数学运算)+ -左右数据同一数据类型* / %注意乘/除法在很多cpu中无法实现,或者需要多个cp

目录
      • [] 内存访问id符

      前言

      自学笔记,没有历史知识铺垫(省略百度部分)c语言运算符的使用

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

      + –

      左右数据同一数据类型

      * / %

      注意

      乘/除法在很多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语言运算符的使用

      本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注<计算机技术网(www.ctvol.com)!!>的更多内容!

      需要了解更多c/c++开发分享C语言的运算符你了解吗,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/784117.html

      (0)
      上一篇 2021年8月26日
      下一篇 2021年8月26日

      精彩推荐