Логическое сравнение вернет true или false в зависимости от значения двух операндов. Логические «и» вернут истину, если оба операнда отличны от нуля. Логическое «или» вернет ложь, только если оба операнда ложны.
Битовые операторы различны и работают с битами операндов. Немного мудрый "и" установит бит в true, только если оба соответствующих бита верны:
101 & 110 = 100
Побитовый "или" устанавливает бит в ноль, только если оба соответствующих бита равны нулю:
010 | 001 = 011
Два побитовых оператора сравнения более тесно связаны с операторами сдвига (<< и >>) и оператором дополнения (~) в том смысле, что они являются операциями низкого уровня.