Os operadores bit a bit devem viajar pelas variáveis e operá-las bit a bit. No caso de inteiros, longos, chars, isso faz sentido. Essas variáveis podem conter toda a gama de valores impostos por seu tamanho.
No caso de booleanos, entretanto, um booleano pode conter apenas dois valores. 1 = verdadeiro ou 0 = falso. Mas o tamanho do booleano não está definido. Pode ser tão grande quanto um byte ou tão pequeno quanto um bit.
Então, qual é o efeito de usar um operador bit a bit em um booleano? A JVM essencialmente o traduz para um operador lógico normal e segue em frente? Ele trata o booleano como uma entidade de bit único para o propósito da operação? Ou o resultado é indefinido junto com o tamanho de um booleano?