为什么y的值会根据x变化?

时间:2013-04-20 11:17:53

标签: javascript math

以下是我的代码,为什么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

2 个答案:

答案 0 :(得分:4)

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

二进制中的

5是:101。 现在,尝试转换其他操作数,应用操作,您将看到y如何依赖x

例如:

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

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

for(; x < 11 ; x++) 

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

答案 1 :(得分:2)

|是一个按位OR运算符。它正在进行OR运算

这是一个按位或。 由于按位运算仅对整数有意义,因此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)

SEE HERE