js '|' 和 '&' 运算

2018-12-03  本文已影响0人  凡凡的小web

单竖杠的运算规则

“|”表示按位或,就是把两个二进制数按每一位比较,当两边都为假时返回值为0,当一边为真时返回值为1 

看了上面的例子,大体知道单竖杠可以进行取整运算,就是只保留正数部分,小数部分通过拿掉,但是“|0”,又是如何进行运算的呢,为什么能“|0”能达到取整的目的呢?单竖杠不是0有会是多少呢?

带着这些问题,我们看下面例子:

console.log(3|4); //7

console.log(4|4);//4

console.log(8|3);//11

console.log(5.3|4.1);//5

console.log(9|3455);//3455

这里面提到了单竖杠“|”但是没有javascript的。

好吧,我在这里公布答案吧。其实单竖杠“|”就是转换为2进制之后相加得到的结果。例如我们拿简单的举例:

3|4

转换为二进制之后011|100  相加得到111=7

4|4

转换为二进制之后100 |100  相加得到100=4

8|3

转换为二进制之后1000 |011  相加得到1011=11

以此类推,我在这里就不一一列举了,单竖杠“|”运算就是转换为2进制之后相加得到的结果!

'&'表示运算符按位与,就是把两个二进制数按每一位比较,两个都为1则为1,否则为0(也类似与且,都真才为真),TRUE的话就是1,FALSE的话就是0

    var b=0;

    var a=(1-1==1)&(++b==1);

    alert(a);//0   

    alert(b);//1

上一篇 下一篇

猜你喜欢

热点阅读