Als ich anfing zu arbeiten, zeigte mir ein Mainframe Assembler-Programmierer, wie sie zu Werten wechseln, ohne den traditionellen Algorithmus von:
a = 0xBABE
b = 0xFADE
temp = a
a = b
b = temp
Was sie verwendeten, um zwei Werte zu tauschen - von einem Bit zu einem großen Puffer - war:
a = 0xBABE
b = 0xFADE
a = a XOR b
b = b XOR a
a = a XOR b
jetzt
b == 0xBABE
a == 0xFADE
Dadurch wurde der Inhalt von 2 Objekten ausgetauscht, ohne dass ein dritter temporärer Speicherplatz erforderlich war.
Meine Frage ist: Ist dieser XOR-Swap-Algorithmus noch in Gebrauch und wo ist er noch anwendbar?