HITm@n a écrit :
Ué ms moi je commence juste a apprendre dc pas trop vite! Sinon merci pour vos réponses!
d'ailleur g rien compris au mess de Sve@r lol
|
Pfff !!! C'est juste une propriété mathématique du "ou exclusif"
1) a=a^b => cela va mettre dans "a" le résultat d'un "ou exclusif" calculé sur chaque bit de "a" par rapport à chaque bit de "b"
2) b=a^b => idem mais si on regarde mieux, on a maintenant dans "b" le résultat de "a^b^b". Or, b^b vaut 0 donc on a maintenant dans "b" la valeur qu'il y avait dans "a"
3) a=a^b encore une fois va mettre dans "a" le calcul de "a^b". Or, dans "a" il y a "a^b" (première opération) et dans "b" il y a "a" (seconde opération). Donc, on a "a=a^b^a". Comme "a^a" vaut 0, on a dans "a" la valeur qu'il y avait dans "b".
Ainsi, au bout des 3 opérations on a interverti "a" et "b" sans utiliser de variable supplémentaire.
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.