Lorsque j'ai commencé à travailler, un programmeur assembleur mainframe m'a montré comment ils pouvaient passer aux valeurs sans utiliser l'algorithme traditionnel de:
a = 0xBABE
b = 0xFADE
temp = a
a = b
b = temp
Ce qu'ils ont utilisé pour échanger deux valeurs - d'un peu à un grand tampon - était:
a = 0xBABE
b = 0xFADE
a = a XOR b
b = b XOR a
a = a XOR b
à présent
b == 0xBABE
a == 0xFADE
qui a échangé le contenu de 2 objets sans avoir besoin d'un troisième espace de maintien temporaire.
Ma question est la suivante: cet algorithme d'échange XOR est-il toujours utilisé et où est-il toujours applicable?