English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Os operadores de bitwise do Java incluem um chamado XOR, representado pelo símbolo (^), cuja regra de operação é: se os bits dos operandos forem iguais, o resultado será 0, e se forem diferentes, o resultado será1。Vamos ver um exemplo:
public class TestXOR{ public static void main(String[] args){ int i = 15, j = 2; System.out.println("i ^ j = ") + (i ^ j)); } }
O resultado da execução é: i ^ j =13.
Análise do programa acima, i =15Convertido para binário é1111,j =2Convertido para binário é 0010,De acordo com a regra de operação XOR, obtemos1101,Convertido para decimal é13.
Usando essa regra, podemos usar flexivelmente em certos algoritmos. Por exemplo, suponha que tenhamos2K+1número, onde há2Se tivermos k valores iguais, precisamos encontrar o número diferente, por exemplo:2、3、4、4、3、5、6、6、5。Nós podemos escrever assim usando o operador XOR:
public class TestXOR{ public static void main(String[] args){ int[] array = {2,3,4,4,3,5,6,6,5}; int v = 0; for (int i = 0; i < array.length; i++) { v ^= array[i]; } System.out.println("O número que apareceu apenas uma vez é: ") + v); } }
O resultado é: o número que apareceu apenas uma vez é2.
Nós usamos a regra do operador XOR de forma inteligente para concluir que um número XOR com 0 é ele mesmo e um número XOR com ele mesmo é 0.
O método de cálculo acima: v =2^3^4^4^3^5^6^6^5;
de acordo com a lei de troca e as regras acima
pode concluir o número que apareceu apenas uma vez (precisa cumprir as condições prévias)2k valores iguais)
Resumo
Isso é tudo sobre a análise do código de problema XOR em java neste artigo, espero que ajude a todos. Amigos interessados podem continuar a consultar outros tópicos relacionados neste site, e são bem-vindos a deixar comentários sobre pontos insuficientes. Agradecemos o apoio dos amigos ao site!
Declaração: O conteúdo deste artigo é extraído da internet, pertence ao respectivo detentor dos direitos autorais, é contribuído e carregado voluntariamente pelos usuários da internet, este site não possui direitos de propriedade, não foi editado manualmente e não assume responsabilidade legal relevante. Se você encontrar conteúdo suspeito de violação de direitos autorais, por favor, envie e-mail para: notice#oldtoolbag.com (ao enviar e-mail, substitua # por @ para denunciar e forneça provas relevantes. Apenas se confirmado, o site deletará imediatamente o conteúdo suspeito de violação de direitos autorais.)