有人可以向我解释一下“|”符号在Javascript中做什么?

时间:2013-05-25 09:32:28

标签: javascript math

它做了什么?

起初我认为这是做Math.max()的简便方法 每次我(1 | 0)(0 | 2985235),我都会收到更大的数字 但是,我错了,因为我在发布这个问题的时候很快就发现了这个问题:
(128|256|0)未评估为256的{​​{1}}。

感谢您的回复。

2 个答案:

答案 0 :(得分:3)

|bitwise OR运营商。 要查看它的作用,请考虑数字的二进制形式:

128 = 010000000
256 = 100000000
0   = 000000000

结果来自逐位执行OR

384 = 110000000

我猜你可能会在逻辑中遇到这种模式来表示选项。 例如,

128 = option 1
256 = option 2
384 = both option 1 & 2

答案 1 :(得分:2)

|是Javascript中的按位运算符。因此,在评估这些整数之前,首先将它们转换为二进制。

  0 -> 000000000
128 -> 010000000
256 -> 100000000

根据您的数据类型,可能会有更多前面的零。无论如何|作为按位OR运算符,将从这两个整数中计算每个位。

因此,您将获得110000000的结果,即十进制的384。

P.S。 OR操作:如果其中任何一个成立,则为真。