• 逻辑运算符


    一、按位与/逻辑与

    (一)按位与

    1.符号

    按位与& 运算符

    2.介绍

    1.按位与运算符“&”是双目运算符
    2.其功能是参与运算的两数各对应的二进位相与
    3.只有对应的两个二进位都为1时,结果位才为1。
    4.千万不要与 && 混淆

    3.举例

    (1)相同位与

    首先把数转换为2进制
    比如:
    10 二进制为:1010
    11 二进制为:1011

          ~~~~~       1    ~~    0    ~~    1    ~~    0
          ~~~~~       1    ~~    0    ~~    1    ~~    1
    &   ~   ————————
          ~~~~~       1    ~~    0    ~~    1    ~~    0

    注意:有对应的两个二进位都为1时,结果位才为1

    (2)不同位与

          ~~~~~       1    ~~    0    ~~    1    ~~    0
                           ~~~~~~~~~~~~~~~~~~~~~~                        1
    &   ~   ————————
                           ~~~~~~~~~~~~~~~~~~~~~~                        0

    “与运算”的特殊用途:

    • 清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。

    • 取一个数中指定位
      方法:找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。
      例:设X=10101110,

      取X的低4位,用 X & 0000 1111 = 0000 1110 即可得到;

      还可用来取X的2、4、6位。

    (3)不同位宽截断和扩展

    Verilog中不同位宽的无符号数和有符号之间赋值的截断和扩展问题

    (二)逻辑与(短路与)

    1.符号

    逻辑与&& 运算符,逻辑与是短路操作符

    2.介绍

    逻辑与和短路与的区别:

    • 逻辑与的判断方式是:
      从左到右依次判断,直到结尾(逻辑全程运算)

    • 短路与的判断方式是:
      从左到右依次判断,直到出现false为止将不再判断,直接得到结果为false(短路遇false就停)

    3.举例

    1&&2转换二进制1&&0010
    1为true,2>0为true,故1&&0010=1;

    console.log(a && 0); // ReferenceError: a is not defined
    console.log(0 && a); //0, 因为是短操作符,第一个操作符0为false,第二个操作符不会执行(这里的变量a未定义)
    console.log(2 && 1); //1,第一个操作数2是true,会计算第二个操作数,返回第二个操作数1
    console.log(0 && 2); //0,第一个操作数0是false,直接返回0,不会管第二个操作数
    console.log(2 && 0); //0,第一个操作数2是true,会计算第二个操作数
    console.log(2 && 3); //3,第一个操作数2是true,会计算第二个操作数,第二个操作数3是true,返回3
    console.log(NaN && NaN); //NaN,第一个操作数是NaN,不会管第二个操作数
    console.log(null && null); //null,第一个操作数时null,不会管第二个操作数
    console.log(undefined && undefined); //undefined,第一个操作数时undefined,不会管第二个操作数

    参考链接

    位运算符之—按位与运算符(简单易懂)
    逻辑或和逻辑与

  • 相关阅读:
    element ui框架(路由参数传递)
    C++面向对象Day02:C++ 类 & 对象
    [附源码]java毕业设计景区门票系统
    BAT026:删除当前目录及子目录下的空文件夹
    CSS特效015:7个小球转圈圈加载效果
    简要介绍,一文了解营商环境评估
    TKE 超级节点,Serverless 落地的最佳形态
    tomcat(二)
    Explain详解与索引最佳实践
    【Linux】UDP协议
  • 原文地址:https://blog.csdn.net/weixin_56102526/article/details/126170525