Come usare bit a bit Operazioni a basso livello di programmazione

February 6

In aggiunta alle operazioni aritmetiche familiari +, -, * e /, linguaggi di programmazione supportano anche operazioni bit per bit. Attraverso queste operazioni di basso livello, un programmatore può accedere ai singoli bit in un modello binario indipendentemente dal tipo di dati. operazioni bit per bit implementano turni aritmetici e logici bit e può fornire molto migliore efficienza di operazioni di alto livello.

istruzione

1 Posizionare il NOT davanti a un valore binario per eseguire un bit NOT. Questa cosiddetta di una operazione complemento inverte ciascun valore bit. Nel linguaggio di programmazione C, usare il simbolo ~ per indicare un'operazione NOT. Per esempio, se X è 0101, allora ~ X è 1.010.

2 Eseguire aritmetica logica valori binari di uguale lunghezza. I computer eseguono operazioni logiche su ciascuna coppia di bit che vanno da destra a sinistra. In C, i simboli e, | e ^ indicano AND bit a bit, operazioni o e XOR, rispettivamente.

3 Spostare uno schema di bit per i bit, a sinistra oa destra scartando che si sposta fuori entrambe le estremità, per implementare la moltiplicazione ottimizzato (spostamento a sinistra) o divisione (spostamento a destra) con potenze di due. Il linguaggio C utilizza i << e >> operatori per bit di spostamento a destra ea sinistra.

4 Determinare il valore di un particolare bit in un numero binario (un'operazione di lettura-bandiera) eseguendo un'operazione AND. Creare un nuovo numero binario (T, per esempio) della stessa lunghezza del numero da esaminare (K, per esempio). Impostare tutti i bit in T a zero, con l'eccezione di bit N, dove N bit in K è il bit che si sta testando. Dopo l'esecuzione di T e K, il risultato sarà pari a zero se il bit N in K è pari a zero, o sarà diverso da zero se il bit N in K è uno.

5 Impostare un particolare bit in un valore binario a uno (una operazione di scrittura-bandiera). È possibile eseguire questa operazione in un modo simile a quello del punto 4. Se si desidera impostare il bit N di K a uno, poi impostare il bit N in T per uno e tutti gli altri bit in T a zero. Eseguire l'operazione T O K. Il numero risultante è identico a T, con l'eccezione che il bit N di T è uno (indipendentemente dal fatto che in precedenza era uno o zero).

Consigli e avvertenze

  • Non confondere le operazioni bit per bit AND, OR e XOR con le loro controparti booleani. Ad esempio, C utilizza e per un AND bit a bit e && per un booleano.