Operatory bitowe mają przemieszczać zmienne i operować na nich bit po bicie. W przypadku liczb całkowitych, długich i znaków ma to sens. Te zmienne mogą zawierać pełen zakres wartości wymuszonych przez ich rozmiar.
Jednak w przypadku logicznych wartości logicznych może zawierać tylko dwie wartości. 1 = prawda lub 0 = fałsz. Ale rozmiar logicznej nie jest zdefiniowany. Może być tak duży jak bajt lub mały.
Więc jaki jest efekt użycia operatora bitowego na boolowskim? Czy wirtualna maszyna Java zasadniczo przekłada to na normalnego operatora logicznego i idzie dalej? Czy na potrzeby operacji traktuje wartość logiczną jako jednostkę jednobitową? A może wynik jest niezdefiniowany wraz z rozmiarem wartości logicznej?