逻辑运算符

一、按位与/逻辑与

(一)按位与

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,不会管第二个操作数

参考链接

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值