我们都知道逻辑运算符
为什么按位运算符
让
&&
如果左操作数为false
,则会短路,因为我们知道如果一个操作数是false
,那么结果也是false
。为什么按位运算符
&
没有短路呢?如果左操作数为0
,那么我们知道结果也是0
。我测试过的每种语言(C、Javascript、C#)都会在第一个操作数之后继续评估两个操作数。让
&
运算符短路有什么坏处吗?如果没有,为什么大多数语言不让它短路呢?这似乎是一个显而易见的优化。
0xFFFFFFFF
,位运算符|
可能会进行短路。 - Peter Olson