Existe um operador chamado exclusivo ou no operador de bits Java, que é representado pelo símbolo (^). As regras de operação estão: Entre os bits de dois operandos, o resultado é 0 se o resultado for 1 se os bits de dois operandos forem iguais e o resultado for 1 se o resultado for diferente. Vamos ver um exemplo abaixo:
classe pública testxor {public static void main (string [] args) {int i = 15, j = 2; system.out.println ("i ^ j =" + (i ^ j);}}O resultado da operação é: i^j = 13.
Analisando o programa acima, a conversão de I = 15 em binário é 1111, a conversão de J = 2 em binária é 0010 e obtendo 1101 de acordo com as regras de operação do XOR e convertê -lo em decimal é 13.
Usando esta regra, podemos aplicar de maneira flexível certos algoritmos. Por exemplo, se houver 2K+1 números, e 2k deles forem iguais, você precisará encontrar os números diferentes, como: 2, 3, 4, 4, 3, 5, 6, 6, 5. Podemos usar o operador XOR para escrever desta maneira:
classe pública testxor {public static void main (string [] args) {int [] Array = {2,3,4,4,3,5,6,6,5}; int v = 0; para (int i = 0; i <Array.length;O resultado é: o número que aparece apenas uma vez é 2.
Apenas usamos as regras do operador XOR para obter o princípio de que um número e 0 são o XOR ou a si mesmo, e um número e a si mesmo são o xor ou a si mesmo.
O método de cálculo acima: v = 2^3^4^4^3^5^6^6^5;
De acordo com a lei da troca e as regras acima
O número que aparece apenas uma vez pode ser produzido (2k dos mesmos pré -requisitos devem ser atendidos)
Resumir
O exposto acima é todo o conteúdo deste artigo sobre a análise de código do problema XOR em Java, espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!