Bitwise é um nível de operações que envolve trabalhar com bits individuais, que são as menores unidades de data em um computador. Cada bit tem um único binário valor: 0 ou 1. Embora os computadores sejam capazes de manipular bits, eles geralmente armazenam dados e executam instruções em múltiplos de bits chamados bytes. A maioria das linguagens de programação manipulam grupos de 8, 16 ou 32 bits.
Bitwise operadores são caracteres que representam ações a serem executadas em bits únicos. Uma operação bitwise opera em padrões de dois bits de comprimentos iguais, combinando posicionalmente seus bits individuais:
Uma lógica AND (&) de cada par de bits resulta em 1 se o primeiro bit for 1 AND o segundo bit for 1. Caso contrário o resultado é zero. Entre outras utilizações, AND (representado como &) pode ser usado para testar bits individuais numa cadeia de bits para ver se são 0 ou 1.
Aqui está um exemplo em C/C++:
IsOdd = (ValueToTest & 1) != 0;
Um OU lógico (|) de cada par de bits resulta em 1 se o primeiro bit for 1 OU o segundo bit for 1. Caso contrário, o resultado é zero. Um XOR lógico (~) de cada par de bits resulta em 1 se os dois bits forem diferentes, e 0 se forem os mesmos.
NÃO lógico é representado como ^. Deslocamento esquerdo (<<), deslocamento direito (>>) e deslocamento direito de preenchimento zero (>>>>>>) são algumas vezes referidos como operadores bitwise e algumas vezes chamados bit operadores de deslocamento.
Ver uma introdução às operações bitwise em Java: