Operazione bit a bit

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

In informatica, un'operazione bit a bit opera su una stringa di bit, un array di bit o un numero binario (considerato una stringa di bit) a livello dei suoi singoli bit. Sono operazioni primitive, veloci, supportate direttamente dal processore, ed usate per manipolare valori, per il confronto e altri calcoli. In processori a basso costo sono operazioni tipiche, più veloci della divisione, diverse volte più veloci della moltiplicazione, e talvolta significativamente più veloci dell'addizione. Le operazioni bit a bit sono più comuni a basse prestazioni per il loro ridotto uso di risorse.

Lo stesso argomento in dettaglio: Complemento a uno.

L'operazione bit a bit di NOT, o complemento, è un'operazione unaria che esegue la negazione logica su ogni bit, formando il complemento a uno del valore binario dato. Bit che sono 0 diventano 1, e quelli che sono 1 diventano 0. Per esempio:

NOT 0111  (decimale 7)
  = 1000  (decimale 8)

L'operazione bit a bit AND, indicata con &, esegue un confronto tra due variabili dando come risultato una terza variabile che presenta un 1 in quelle posizioni in cui entrambe le variabili di partenza presentano 1 e uno 0 in tutte le altre.

a=60;            00111100
b=240;           11110000
c=a&b;           00110000

'c' sarà uguale a 48.

L'operazione bit a bit OR, indicata con |, esegue un confronto tra due variabili dando come risultato una terza variabile che presenta un 1 in quelle posizioni in cui almeno una delle due variabili di partenza presenta 1 e uno 0 in tutte le altre posizioni (ossia le posizioni in cui entrambe le variabili presentano '0'). Potrebbe considerarsi come l'operazione simmetricamente opposta dell'AND di cui sopra.

a=60;            00111100
b=240;           11110000
c=a|b;           11111100

'c' sarà uguale a 252.

L'operazione bit a bit XOR indicata con ^, esegue un confronto tra due variabili dando come risultato una terza variabile che presenta un 1 in quelle posizioni in cui le due variabili di partenza presentano valori diversi e uno 0 in tutte le altre posizioni.

a=60;            00111100
b=240;           11110000
c=a^b;           11001100

'c' sarà uguale a 204.