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.
Blog sobre .NET, C#, ASP.NET entre outras tecnologias de desenvolvimento de software
01/07/2009 15:53:00 Por Fujiy
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.
_505.png)
_1373_1370_512.png)

FUJIYBLOG v0.2
Comentários
7/1/2009 1:10:02 PM
int i1 = 5; int i2 = 10; i1 = i1 ^ i2; i2 = i1 ^ i2; i1 = i1 ^ i2; Console.WriteLine("i1 = " + i1); Console.WriteLine("i2 = " + i2);
fujiy | Responder7/2/2009 6:22:50 AM
int i1 = 5; int i2 = 10; i1 = i1 + i2; i2 = i1 - i2; i1 = i1 - i2; Console.WriteLine("i1 = " + i1); Console.WriteLine("i2 = " + i2);
fujiy | Responder8/26/2009 12:09:47 AM
Fala Fujiy blz? Cara tô curtindo pra caramba seu blog, vem cá, como é o funcionamento do operador ^ nessa primeira solução?
Franklin | Responder8/26/2009 8:07:53 PM
^ é o operador XOR(Exclusive OR), no caso: i1 = 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
fujiy | Responder