Los operadores de bits permiten manipular bits individuales de un número (ya que los valores con punto flotante utilizan un formato interno especial, los operadores de bits sólo funcionan con tipos enteros: char, int y long). Los operadores de bits efectúan álgebra booleana en los bits correspondientes de los argumentos para producir el resultado.
El operador and (&) para bits produce uno en la salida si ambos bits de entrada valen uno; de otro modo produce un cero. El operador or (|) para bits produce un uno en la salida si cualquiera de los dos valores de entrada vale uno, y produce un cero sólo si ambos valores de entrada son cero. El operador or exclusivo o xor (^) para bits produce uno en la salida si uno de los valores de entrada es uno, pero no ambos. El operador not (~) para bits (también llamado operador de complemento a uno) es un operador unario - toma un único argumento (todos los demás operadores de bits son binarios). El operador not para bits produce el valor contrario a la entrada - uno si el bit de entrada es cero, y cero si el bit de entrada es uno.
Los operadores de bits pueden combinarse con el signo = para unir la operación y la asignación: &=, |=, y ^= son todas operaciones legales (dado que ~ es un operador unario no puede combinarse con el signo =).