-
Cómo cambiar los valores de dos variables sin utilizar una variable temporal
-
En la programación, hay muchas veces que usted necesita para cambiar los valores de dos variables (como en una burbuja Ordenar). La mayoría de la gente se mostrará cómo lo hace con tres variables y el uso de las operaciones de despilfarro, pero puedo mostrar cómo lo hace con dos ... EFICIENTEMENTE!Instrucciones
Comprensión XOR:
O XOR O-exclusiva, es similar a la INCLUSIVE-O de uso común, excepto que si ambas entradas son 1, la salida es 0 (en oposición a INCLUSIVE-O, donde el valor es 1).
Esto se refiere a este caso en el que normalmente hacemos algo como:
int II1 = 1;
int II2 = 2;
int tmp;tmp = II1;
II1 = II2;
II2 = tmp;2 Ahora, la magia:
Un triple de XOR realizada en dos variables cambiará ELLOS !!!Así, en C #:
int II1 = 1;
int II2 = 2;II1 ^ = II2;
II2 ^ = II1;
II1 ^ = II2;Las variables han sido cambiados sin necesidad de utilizar una variable temporal!