Swappa variabler är ju något som kan vara användbart i flera sammanhang. Det klassiska exemplet brukar ges med att man har ett värde i A och ett värde i B (som kan vara likadant men inte nödvändigtvis) och sedan gör man följande operationer:
C = A
B = A
A = C
Detta sätt kräver dock extra datalagring i form av variabeln C och kan eventuellt undvikas med diverse trick. Det man bör tänka på är dock att vissa av tricken inte är helt rumsrena och har problem i vissa fall, antingen när någon av A eller B är noll eller om A = B.
Variant med addition/subtraktion:
A = A + B
B = A – B
A = A – B
Man kan vara uppmärksam på vad som händer när talen A eller B närmar sig MAX_INT det största talet som kan hanteras. När A eller B är > MAX_INT/2 kommer man få en överflödniong vid additionen och ett lån vid subtraktionen. På de flesta system fungerar detta men inte nödvändigtvis alla, det finns säkert system som är trasiga i den aspekten.
Farlig variant med XOR:
A = A ⊕ B
B = B ⊕ A
A = A ⊕ B
Men, det här blir inte så bra om A = B och det bör man i så fall försäkra sig aldrig händer. Sker det förstörs innehållet i båda registren. Därför bör man villkora att man inte utför operationen om båda registren innehåller samma värde. Det innebär dock fler operationer.
Muahaha
World domination in 12 easy steps.