Vai al contenuto

Operazione bit a bit

Da Wikipedia, l'enciclopedia libera.

In informatica, un'operazione bit a bit (o bitwise) 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, e 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. I bit che sono 0 diventano 1, e quelli che sono 1 diventano 0. Per esempio:

NOT𝟶𝟷𝟷𝟷(decimale 7)=𝟷𝟶𝟶𝟶(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;𝟶𝟶𝟷𝟷𝟷𝟷𝟶𝟶b=240;𝟷𝟷𝟷𝟷𝟶𝟶𝟶𝟶c=a&b;𝟶𝟶𝟷𝟷𝟶𝟶𝟶𝟶

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;𝟶𝟶𝟷𝟷𝟷𝟷𝟶𝟶b=240;𝟷𝟷𝟷𝟷𝟶𝟶𝟶𝟶c=a∣b;𝟷𝟷𝟷𝟷𝟷𝟷𝟶𝟶

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;𝟶𝟶𝟷𝟷𝟷𝟷𝟶𝟶b=240;𝟷𝟷𝟷𝟷𝟶𝟶𝟶𝟶c=a⊕b;𝟷𝟷𝟶𝟶𝟷𝟷𝟶𝟶

c sarà uguale a 204.

Altri progetti

[modifica | modifica wikitesto]