Se supone que los operadores bit a bit viajan variables y operan sobre ellas bit a bit. En el caso de enteros, largos, caracteres, esto tiene sentido. Estas variables pueden contener la gama completa de valores exigidos por su tamaño.
En el caso de los valores booleanos, sin embargo, un booleano puede contener solo dos valores. 1 = verdadero o 0 = falso. Pero el tamaño del booleano no está definido. Puede ser tan grande como un byte o tan pequeño como un bit.
Entonces, ¿cuál es el efecto de usar un operador bit a bit en un booleano? ¿La JVM esencialmente lo traduce a un operador lógico normal y sigue adelante? ¿Trata el booleano como una entidad de un solo bit para el propósito de la operación? ¿O el resultado no está definido junto con el tamaño de un booleano?