Fujiy

Blog sobre .NET, C#, ASP.NET entre outras tecnologias de desenvolvimento de software

Desafio II - Trocando valores

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.

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 | Responder

7/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 | Responder

8/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 | Responder

8/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

Adicionar Comentário