是干什么的呢?
一开始,我认为这是做Math.max()的一种快捷方式
每次我运行(1 | 0)或(0 | 2985235)时,我都会得到更大的数值。
然而,我错了,因为当我用这个例子发布这个问题时我很快就发现了:
不求值为256的(128|256|0)。
感谢你有帮助的回复。
发布于 2013-05-25 17:38:46
|是一个bitwise OR运算符。要了解它的作用,请考虑数字的二进制形式:
128 = 010000000
256 = 100000000
0 = 000000000结果是逐位执行OR得到的
384 = 110000000我猜您可能会在表示选项的逻辑中遇到此模式。例如,
128 = option 1
256 = option 2
384 = both option 1 & 2发布于 2013-05-25 17:39:49
|是Javascript中的位运算符。因此,在计算这些整数之前,首先将它们转换为二进制。
0 -> 000000000
128 -> 010000000
256 -> 100000000根据您的数据类型,可能会有更多的前置零。无论如何,|作为按位OR运算符,将计算这两个整数中的每一位。
所以你会得到110000000,也就是十进制的384。
附注:或运算:如果其中任何一个成立,则为真。
https://stackoverflow.com/questions/16748220
复制相似问题