它有什么作用?
起初我以为这是一种速记方式,Math.max()
每次我做(1 | 0)
or(0 | 2985235)
时,我都会得到更大的数字。
但是,我错了,当我用示例发布这个问题时很快发现:
(128|256|0)
which doesn't evaluate to 256
.
感谢您的帮助。
它有什么作用?
起初我以为这是一种速记方式,Math.max()
每次我做(1 | 0)
or(0 | 2985235)
时,我都会得到更大的数字。
但是,我错了,当我用示例发布这个问题时很快发现:
(128|256|0)
which doesn't evaluate to 256
.
感谢您的帮助。
|
是按位或运算符。要查看它的作用,请考虑数字的二进制形式:
128 = 010000000
256 = 100000000
0 = 000000000
结果是逐位执行 OR
384 = 110000000
我想您可能会在表示选项的逻辑中遇到这种模式。例如,
128 = option 1
256 = option 2
384 = both option 1 & 2
|
是 Javascript 中的位运算符。因此,在评估这些整数之前,首先将它们转换为二进制。
0 -> 000000000
128 -> 010000000
256 -> 100000000
根据您的数据类型,可能会有更多前面的零。无论如何|
,作为按位或运算符,将从这两个整数中评估每一位。
因此,您将得到 110000000 作为结果,即十进制的 384。
PS OR 运算:如果其中任何一个为真,则为真。