Hay un operador llamado operador exclusivo o en Java Bit, que está representado por el símbolo (^). Las reglas de operación están: entre los bits de dos operandos, el resultado es 0 si el resultado es 1 si los bits de dos operandos son los mismos, y el resultado es 1 si el resultado es diferente. Veamos un ejemplo a continuación:
public class testXor {public static void main (string [] args) {int i = 15, j = 2; system.out.println ("i ^ j =" + (i ^ j));}}El resultado de la operación es: i^j = 13.
Analizar el programa anterior, convertir i = 15 en binario es 1111, convertir j = 2 en binario es 0010, y obtener 1101 de acuerdo con las reglas de operación de XOR, y convertirlo en decimal es 13.
Usando esta regla, podemos aplicar de manera flexible ciertos algoritmos. Por ejemplo, si hay 2k+1 números, y 2k de ellos son iguales, debe encontrar los diferentes números, como: 2, 3, 4, 4, 3, 5, 6, 6, 5. Podemos usar el operador XOR para escribir de esta manera:
public class testXor {public static void main (string [] args) {int [] array = {2,3,4,4,4,3,5,6,6,5}; int v = 0; for (int i = 0; i <array.length; i ++) {v ^= array [i];} system.out.println ("El número que solo aparece una vez es:" "" V);}El resultado es: el número que solo aparece una vez es 2.
Simplemente usamos las reglas del operador XOR para obtener el principio de que un número y 0 son los Xor o uno mismo, y un número y uno mismo son los Xor o uno mismo.
El método de cálculo anterior: V = 2^3^4^4^3^5^6^6^5;
De acuerdo con la ley de intercambio y las reglas anteriores
El número que solo aparece una vez se puede emitir (se deben cumplir 2k de los mismos requisitos previos)
Resumir
Lo anterior es todo el contenido de este artículo sobre el análisis del código del problema XOR en Java, espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!