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