simple resueltos programacion principiantes pasar para orientado online objetos mutacion machine learning inteligencia hexadecimal hexa genetico genetica gaussiana evolutivos ejercicios ejemplos dec deap convert conversor binario artificial arreglos algoritmos algoritmo java algorithm

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);