¿Por qué el bitwise y el operador no provocan un cortocircuito?

Todos sabemos que la lógica&& operador cortocircuitos si el operando izquierdo esfalse, porque sabemos que si un operando esfalse, entonces el resultado también esfalse.

¿Por qué no lo hace bitwise& operador también cortocircuito? Si el operando izquierdo es0, entonces sabemos que el resultado también es0. Cada lenguaje en el que he probado esto (C, Javascript, C #) evalúa ambos operandos en lugar de detenerse después del primero.

¿Hay alguna razón por la cual sería una mala idea dejar que& operador de cortocircuito? Si no, ¿por qué la mayoría de los idiomas no lo hacen corto? Parece una optimización obvia.

Respuestas a la pregunta(10)

Su respuesta a la pregunta