Bitwise è un livello di operazioni che implica il lavoro con singoli bit, che sono le unità di dati più piccole in un computer. Ogni bit ha un singolo valore binario: 0 o 1. Sebbene i computer siano in grado di manipolare i bit, di solito memorizzano i dati ed eseguono le istruzioni in multipli di bit chiamati byte. La maggior parte dei linguaggi di programmazione manipola gruppi di 8, 16 o 32 bit.
Gli operatori bit per bit sono caratteri che rappresentano azioni da eseguire su singoli bit. Un'operazione bit per bit opera su modelli a due bit di uguale lunghezza facendo corrispondere in posizione i loro singoli bit:
Un AND logico (&) di ciascuna coppia di bit restituisce 1 se il primo bit è 1 E il secondo bit è 1. Altrimenti il risultato è zero. Tra gli altri usi, AND (rappresentato come &) può essere utilizzato per testare singoli bit in una stringa di bit per vedere se sono 0 o 1.
Ecco un esempio in C / C ++:
IsOdd = (ValueToTest & 1)! = 0;
Un OR logico (|) di ciascuna coppia di bit restituisce un 1 se il primo bit è 1 OPPURE il secondo bit è 1. In caso contrario, il risultato è zero. Uno XOR logico (~) di ciascuna coppia di bit restituisce 1 se i due bit sono diversi e 0 se sono uguali.
Il NOT logico è rappresentato come ^. Lo spostamento a sinistra (<<), lo spostamento a destra (>>) e lo spostamento a destra con riempimento zero (>>>>) sono talvolta indicati come operatori bit a bit e talvolta chiamati operatori di spostamento di bit.
Vedere un'introduzione alle operazioni bit per bit in Java: