CrazyMan19
Messages postés163Date d'inscriptionsamedi 2 août 2003StatutMembreDernière intervention 4 novembre 201315 3 déc. 2006 à 21:37
d'après votre question je pense que vous voulez faire une operation de permutation de deux variables alors voiçi deux manière que j les utilises souvent :
1ere Solution :
X1=X1+Y1
Y1=X1-Y1
X1=X1-Y1
2eme Solution :
X1= X1 XOR Y1
Y1= X1 XOR Y1
X1= X1 XOR Y1
Je suis né intelligent ... L'éducation me détruit ;)
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 4 déc. 2006 à 13:50
Personellement je prefere la méthode de XGuarden.
Avec les methodes de CrazyMan19, il y a de gros risques de dépassement de capacité.
Admettons que X1 et Y1 soient des Int16 (en VB.NET)
X1 = 32766
Y1 = 4
La methode de XGuarden marche sans problème
La 1er méthode de CrazyMan génère un dépassement de capacité
La 2nd méthode marche mais n'est pas forcément évidente à comprendre (penser au jour ou vous reprendrait votre code dans 2 ans par ex) et peut-etre même plus lente en temps d'execution.
La 3eme méthode renvoie un résultat faux
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
CrazyMan19
Messages postés163Date d'inscriptionsamedi 2 août 2003StatutMembreDernière intervention 4 novembre 201315 4 déc. 2006 à 14:11
oui c possible qu il aura un depassement de capacité dans la première méthode, la deuxième et évident au cas où t as deja fait opération logique (XOR,OR,AND,NAND...) pour la troisième méthode marche bien chez moi ... en effet la méthode de l utilisation d une troisième variable est la méthode la plus utilisé mais puisque XGuarden veut plus d méthode alors les voila et c à lui de choisir :d
Je suis né intelligent ... L'éducation me détruit ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 4 déc. 2006 à 14:37
Chez moi avec les valeurs données, ta 3eme méthode me renvoie -32762 pour X1 et 4 pour Y1 alors que le résultat devrait etre 4 pour X1 et 32766 pour Y1
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #