Gli operatori bit per bit dovrebbero viaggiare sulle variabili e operare su di esse bit per bit. Nel caso di numeri interi, long, char questo ha senso. Queste variabili possono contenere l'intera gamma di valori imposti dalla loro dimensione.
Nel caso dei booleani, tuttavia, un booleano può contenere solo due valori. 1 = vero o 0 = falso. Ma la dimensione del booleano non è definita. Può essere grande quanto un byte o un po 'piccolo.
Allora qual è l'effetto dell'utilizzo di un operatore bit per bit su un booleano? La JVM lo traduce essenzialmente in un normale operatore logico e va avanti? Tratta il valore booleano come un'entità a bit singolo ai fini dell'operazione? O il risultato è indefinito insieme alla dimensione di un booleano?