• C/的常用位运算符


    双目运算符

    位逻辑运算符

    有6种位运算:

        &       与运算   
        |       或运算   
        ^       异或运算   
        !      非运算(求补)   
        >>      右移运算   
        <<      左移运算   
    
    • 与运算(&)
      双目运算。二个位都置位(等于1)时,结果等于1,其它的结果都等于0。
        1       &       1       ==       1   
        1       &       0       ==       0   
        0       &       1       ==       0   
        0       &       0       ==       0
    
    • 或运算( | )
      双目运算。二个位只要有一个位置位,结果就等于1。二个位都为0时,结果为0。
        1       |       1       ==       1   
        1       |       0       ==       1   
        0       |       1       ==       1   
        0       |       0       ==       0
    
    • 异或运算(^)
      双目运算。二个位不相等时,结果为1,否则为0。
        1       ^       1       ==       0   
        1       ^       0       ==       1   
        0       ^       1       ==       1   
        0       ^       0       ==       0
    
    • 非运算(!)
      单目运算。位值取反,置0为1,或置1为0。非运算的用途是将指定位清0,其余位置1。非运算与数值大小无关。

    • 移位运算(>> 与 <<)
      将位值向一个方向移动指定的位数。右移 >> 算子从高位向低位移动,左移 << 算子从低位向高位移动。

    • &,&&,|,||

    &&相当一个开关语句,就是说如果&&前面值为false那么他就不继续执行后面的表达式;而&不管前面的值为什么,总是执行其后面的语句。&& 和 || 是boolean的逻辑运算, 返回为bool值 。&是位运算符,它会将两边的运算都计算出来,再进行与运算; &是用来处理0101这样的2进制字符的位运算的。&&是布尔逻辑运算符(短路运算),只要有一边的运算结果为false,它都会马上返回false;&&是处理true和false这样的boolean运算。
    同样的道理,|| 也是布尔逻辑运算符,只要有一边的运算结果是true,它会马上返回true。

    关系运算符

    https://baike.baidu.com/item/%E5%85%B3%E7%B3%BB%E8%BF%90%E7%AE%97%E7%AC%A6/352774
    在这里插入图片描述

    算术运算符
    乘法运算符【*】、除法运算符【/】、取余运算符【%】 、加法运算符【+】、减法运算符【-】。
    在这里插入图片描述

    赋值运算符
    https://baike.baidu.com/item/%E8%B5%8B%E5%80%BC%E8%BF%90%E7%AE%97%E7%AC%A6/2482721
    逗号运算符
    https://baike.baidu.com/item/%E9%80%97%E5%8F%B7%E8%BF%90%E7%AE%97%E7%AC%A6/7959271

    单目运算符

    单目运算符是指运算所需变量为一个的运算符,即在运算当中只有一个操作数,又叫一元运算符,其中有逻辑非运算符:!、按位取反运算符:~、自增自减运算符:++, --等。

    三目运算符

    对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。
    一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。例如,a ? b : c ? d : e将按a ? b : (c ? d : e)执行。
    <表达式1> ? <表达式2> : <表达式3>; "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。
    可以理解为条件 ? 结果1 : 结果2 里面的?号是格式要求。也可以理解为条件是否成立,条件成立为结果1,否则为结果2。
    注意:在C语言中,结果1 和 结果2的类型必须一致。

    a ? b : c简单理解方式为:

    if(a) {
        return b;
    } else {
        return c;
    }
    

    一般来说,三目运算符的结合性是右结合的.

    运算符优先级

    在这里插入图片描述
    +

    IN THE END

  • 相关阅读:
    springboot+websocket 归纳收集
    flask-admin 快速打造博客 系列一
    Flask-sqlalchemy 语法总结
    python 小问题收集
    pyenv+virtual 笔记
    flask_admin 笔记七 扩展功能
    Flask_admin 笔记六 modelView的内置方法
    spring boot 项目中 maven打第三方lib包时遇到的问题以及解决方法
    java 字符串压缩长度并解压
    highcharts中放aqi及6要素,再加上气象5要素的图
  • 原文地址:https://www.cnblogs.com/rebirth-death2019/p/13778582.html
Copyright © 2020-2023  润新知