XOR significa OR esclusivo. E` un operatore booleano che si comporta come l`OR, tranne nel caso in cui i due operandi siano entrambi 1 (da cui l`aggettivo 'esclusivo'). Oppure, in modo piu` intuitivo, si puo` dire che restituisce 1 sse i due operandi sono diversi.

Su piu` operandi si puo` generalizzarlo come operatore di disparita`, perche` restituisce 1 sse fra gli operandi c`e` un numero dispari di "uni". Questa e` la tabella di verita` dello XOR:

codice:
 x1 x2 | y
-------|---
 0  0  | 0
 0  1  | 1
 1  0  | 1
 1  1  | 0
Penso possa bastare.

La formula che ho scritto nel post precedente e` una proprieta` dello XOR, che lo rende reversibile. Infatti una variabile booleana "XOR-ata" due volte con un`altra variabile booleana ritorna la variabile stessa. Quindi cripterai con var_decriptata ^= mask e decripterai alla stessa maniera con var_criptata ^= mask.