Este es un bit a bit de la reducción del operador. |a & b
significa aplicar una lógica O a todos los bits de a
(la producción de un solo bit) y, a continuación, hacer un lógico Y de la que poco y b
. |a
no tiene ningún efecto cuando a
es de un solo bit.
Sin embargo, es muy común ver a bit a bit de reducción aplicados a solo los valores de los bits. Un caso típico es el código generado automáticamente, donde el ancho real de a
puede depender de la configuración. Otra posibilidad es que este ser de código de la herencia donde a
una vez había varios bits. Cuando a
se convirtió en un único bit de valor, esta línea fue técnicamente correctos de forma innecesaria reducción de operador fue de izquierda.