C# : Permuter deux variables avec l'opérateur
En C#, il existe de multiple manières de permuter deux
variables. Une technique méconnue consiste à utiliser l'opérateur
XOR.
La plus connue et la plus habituelle de ces méthodes est, bien entendu, d'utiliser une troisième variable :
int a = 3;
int b = 6;
int c = a;
a = b;
b = c;
Pour éviter de créer une troisième variable comme dans l'exemple ci-dessus, il est possible d'utiliser l'opérateur XOR :
int a = 3;
int b = 6;
a = a ^ b; // donne 5
b = a ^ b; // donne 3
a = a ^ b; // donne 6
Explication :
L'opérateur XOR peut se définir par la phrase suivante : Le résultat est VRAI si un et un seul des opérandes A et B est VRAI. Cela donne la table de vérité suivante :
Table de vérité de XOR | ||
A | B | R = A ⊕ B |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
En binaire, le chiffre 3 correspond à "0011" et le 6 à "0110". Ainsi l'opération 6 ^ 3 donne 5, c'est-à-dire, en binaire, "0101" puisque :
- 0 ^ 0 = 0
- 0 ^ 1 = 1
- 1 ^ 1 = 0
- 0 ^ 1 = 1
Si l'on répète cette opération comme dans l'exemple ci-dessus, on obtient la permutation de nos deux variables.
16 octobre 2016 - Wakonda - C#
Rechercher
Tags
Articles récents
- Quel est le but de l'attribut "role" en HTML ?
- Changer la couleur de l'espace réservé (placeholder)
- Attention à cet email d’arnaque !
- Supprimer un fichier d'un référentiel Git sans le supprimer du système de fichiers local
- JS - Récupérer le dernier élément d'un tableau
- JS - Prévisualiser une image avec son upload
- PHP - Convertir une chaîne de caractères en un booléen
- PHP : Vérifier si une session a déjà été démarrée
- Créer un APK ou un AAB en ligne de commandes
- L'opérateur !! en Javascript