L’ Operazione XOR in C
Dec
20090
Oggi vi voglio parlare dell’ operatore XOR e della sua applicazione al linguaggio C…
In linea di principio la tabella di verità relativa a questo operatore logico è:
Osservando la tabella si può comprendere come in realtà l’operazione logica ritorni sempre risultato VERO per p != q . Un altro aspetto della XOR è che di fatto rappresenta l’operazione di addizione senza effetuare il conteggio del riporto entrante ( carry ) ad esempio:
1110 xor 1001 = 0111
In C , l’ OR esclusivo viene applicato tramite l’operatore ^ che effettua una XOR bit a bit. Quindi avendo una variabile di questo tipo:
int a; int MASK; int res; a = 10011010; MASK = 11111111; res = a ^ MASK ;
Il valore di res sarà: 01100101
L’ algoritmo di XOR può essere utilizzato ad esempio per implementare un sistema di criptaggio / decriptaggio delle informazioni: la variabile MASK infatti, fa da chiave sia in fase di codifica sia per la decodifica. Applicando l’operazione di XOR tra il risultato del precedente esempio (res) e la variabile MASK si riottiene di nuovo il valore di a.












Commenti