Desafio II - Trocando valores
Sendo:
int i1 = valorx;
int i2 = valory;
Como trocar os valores das variaveis sem criar outra variavel temporária?
A resposta está nos comentários.
07/01/2009 14:53:00 By Felipe Pessoto
Sendo:
int i1 = valorx;
int i2 = valory;
Como trocar os valores das variaveis sem criar outra variavel temporária?
A resposta está nos comentários.
Formado em Ciência da Computação. MCTS, MCPD, Microsoft Specialist e MCSD
07/01/2009 12:10:02
int i1 = 5;
Replyint i2 = 10;
i1 = i1 ^ i2;
i2 = i1 ^ i2;
i1 = i1 ^ i2;
Console.WriteLine("i1 = " + i1);
Console.WriteLine("i2 = " + i2);
07/02/2009 05:22:50
int i1 = 5;
Replyint i2 = 10;
i1 = i1 + i2;
i2 = i1 - i2;
i1 = i1 - i2;
Console.WriteLine("i1 = " + i1);
Console.WriteLine("i2 = " + i2);
08/25/2009 23:09:47
Fala Fujiy blz? Cara tô curtindo pra caramba seu blog, vem cá, como é o funcionamento do operador ^ nessa primeira solução?
Reply08/26/2009 19:07:53
^ é o operador XOR(Exclusive OR), no caso:
Replyi1 = 101 ^ 1010 //1111 é o XOR dos dois valores
i2 = 1111 ^ 1010 //Pegamos o valor acima e fazer um XOR pelo valor de i2, assim temos o valor de i1 de volta(101)
i1 = 1111 ^ 101//Aquele mesmo 1111 com XOR pelo antigo valor de i1(agora no i2), resulta no antigo valor de i2