java - resueltos - La forma más elegante de cambiar de 0 a 1 y viceversa
programacion genetica inteligencia artificial (6)
¿Cuál es la forma más elegante de hacer lo siguiente?
int i = oneOrZero;
if (i == 0) {
i = 1;
} else {
i = 0;
}
Puede suponer que puedo tener solo 1 o 0 valor.
¿sustracción?
i = 1 - i;
Usa bit xor
i ^= 1;
i = ( i + 1 ) % 2
, aunque creo que todos estamos de acuerdo en que la resta o el método xor es mejor! (Aunque tiene el beneficio adicional de "activar el interruptor" por más que binario).
i = (i == 0)?1:0
es de una manera, aunque me gustan mejor las versiones de @Jimmy y @ Yuval.
i ^= 1;
XOR el valor con 1. Esto le da las dos maneras (en caso de que necesite voltear 0 <--> 1
ambos sentidos):
0 ^ 1 = 1
1 ^ 1 = 0
int x = 0;
x=(int)Math.cos(x);
System.out.println("X value "+x);