English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Análise do código do problema de XOR em Java

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

Você também pode gostar