26.12.2011, 04:07
Xor Swap - Converta as posiзхes dos valores!
Olб criei esta funзгo porque eu estava necessitando,
ela й muito fбcil de usa-la, caso nгo saiba oque й swap,
leia:
Код:
Xor Swap й um Algoritmo que usa a funзгo lуgica OU Exclusivo para trocar os valores de duas variбveis do mesmo tipo, sem usar armazenamento temporбrio. Ele utiliza a propriedade de que (A XOR B) XOR B = A. Como ele utiliza a funзгo booleana XOR, o algoritmo sу irб funcionar com nъmeros escritos na base binбria. Como computadores sу usam nъmeros binбrios, й um bom mйtodo a ser usado em programaзгo.
Para explicar como funciona, vamos as equaзхes do primeiro grau.
Vamos supor que o valor de X й 100 e o valor de Y й 10.
logo temos:
Код:
X ^= Y = X Y ^= Y = Y X ^= Y = X
que realiza a troca.
Cуdigo:
pawn Код:
#define s_swap(%0,%1) (%0 ^= %1, %1 ^= %0, %0 ^= %1)
Como usar ?
podemos usar de vбrios modos,
os mais correto й:
pawn Код:
new value1 = 100;
new value2 = 10;
s_swap(value1, value2);
printf("%d SWAP %d", value1, value2);
Espero ter ajudado..