« Les opérations bit à bit/Les subtilités du XOR » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 101 :
* <math>A = A \oplus B</math> ;
* <math>B = A \oplus B</math>;
* <math>A = A \oplus B</math> ;.
 
Le code source correspondant, en C/C++, est un joli oneliner :
 
<source lang="c">
x^=y^=x^=y ;
</source>
 
Toutefois il faut faire attention : ni A, ni B ne doivent valoir zéro. Si un seul d'entre eux vaut zéro, et pas l'autre, l'algorithme du dessus ne marche pas. Dans ce cas, les deux données/registres sont mises à zéro, ce qui n'est pas le but recherché.