1

下面是我的代码,为什么 y 的值会改变?
是什么var y = x | 5;意思?

代码

 var x = 0;
      for(x; x < 11 ; x++)
    {
    var y = x | 5;
    console.log("\nx: "+x+ "  y : "+y)
    }

结果是

    x: 0  y : 5
    x: 1  y : 5
    x: 2  y : 7
    x: 3  y : 7
    x: 4  y : 5
    x: 5  y : 5
    x: 6  y : 7
    x: 7  y : 7
    x: 8  y : 13
    x: 9  y : 13
    x: 10  y : 15

为什么值的y变化基于x
计算的依据y是什么?

4

2 回答 2

4

|是按位或运算符!它的工作原理是将操作数转换为二进制,并对每一位进行 OR 操作!

二进制中的 5 是:101. 现在,尝试转换另一个操作数,应用该操作,您将看到如何y依赖x

例如:

9    =   1001
5    =   0101
         ____
9|5  =   1101  == 13

另外,请注意您的 for 循环包含语法错误。删除该;行中的最后一个,您就可以开始了。

for(; x < 11 ; x++) 

此外,您不需要x在第一部分,因为它已经声明和初始化

于 2013-04-20T11:19:26.787 回答
2

| 是按位或运算符。它正在执行或运算

这是按位或。由于按位运算仅对整数有意义,因此 0.5 被截断。

0 | x is x, for any x. 

   0 1 1 0 = 6  
   1 0 1 0 = 10 
   1 1 1 0 = 14 

9 | 5 = 1101 (which is 13)

看这里

于 2013-04-20T11:19:57.710 回答