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

Contenu supprimé Contenu ajouté
→‎Échange de deux variables : Attention avec les pointeurs
→‎Stupid XOR trick : Correction : même pour zéro ça fonctionne. Par contre attention quand des pointeurs ou références sont utilisés.
Ligne 109 :
</source>
 
Toutefois il faut faire attention :quand niles A,variables niutilisées Bsont neindirectement doiventaccédés valoirà zéro.travers Sides unpointeurs seulou d'entredes euxréférences vaut: zéro, et pas l'autre, l'algorithme du dessusil ne marchefaut pas. Dans ce cas,que les deux données/registrespointeurs sontou misesréférences àpointent zérola même adresse mémoire, cesinon quile contenu n'est pasperdu leet butremis recherchéà zéro.
 
Cette technique était autrefois utilisée comme optimisation par quelques programmeurs, mais a perdu de sa superbe aujourd'hui. En effet, les processeurs modernes peuvent échanger facilement deux registres très rapidement, parfois en 0 cycle d'horloge. Quelques optimisations liées au renommage de registre permettent de réaliser cet échange en 0 cycles, bien plus rapidement qu'avec la méthode abordée. En conséquence, cette méthode est utilisable seulement sur les petits microcontrôleurs qui ne possèdent que très peu de registres, dans un objectif d'optimisation certain. Ce qui réduit largement son utilité...