Bases de la programmation (trace de pseudo-code)
⊕ désigne le OU exclusif bit à bit. Quelles sont les valeurs de x et y après l'exécution du programme suivant ?
integer: x ← 12, y ← 10
x ← x ⊕ y
y ← x ⊕ y
x ← x ⊕ y
- Ax = 10, y = 12
- Bx = 6, y = 12
- Cx = 12, y = 10
Afficher la réponse et l'explication
Réponse : A. x = 10, y = 12
En binaire, 12 = 1100 et 10 = 1010. La première affectation donne x = 1100 ⊕ 1010 = 0110 = 6, la deuxième y = 0110 ⊕ 1010 = 1100 = 12 et la troisième x = 0110 ⊕ 1100 = 1010 = 10. Cette méthode échange les valeurs sans variable temporaire, en utilisant le fait qu'un OU exclusif appliqué deux fois avec la même valeur redonne la valeur d'origine (a ⊕ b ⊕ b = a).
Continuer : 9 autres questions sur Bases de la programmation (trace de pseudo-code)