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

Analisi del codice del problema XOR in Java

In Java, c'è un operatore di bitwise chiamato XOR, rappresentato dal simbolo (^), il cui regolo di calcolo è: se i bit delle due operandi sono uguali, il risultato è 0, altrimenti il risultato è 1. Vediamo un esempio:

public class TestXOR{
	public static void main(String[] args){
		int i = 15, j = 2;
		System.out.println("i ^ j = " + (i ^ j));
	}
}

Il risultato della esecuzione è: i^j=13.

Analizzando il programma sopra, i=15 in binario è 1111, j=2 in binario è 0010, secondo le regole dell'operazione XOR otteniamo 1101, che in decimale è 13.

Possiamo utilizzare questa regola in vari algoritmi. Ad esempio, supponiamo di avere 2K+1 numeri, tra cui 2k numeri identici, è necessario trovare il numero diverso, ad esempio: 2,3,4,4,3,5,6,6,5. Possiamo scrivere così utilizzando l'operatore 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("Il numero che appare una volta è:" + v);
	}
}

Il risultato è: il numero che appare una volta è 2.

Abbiamo sfruttato le regole dell'operatore XOR per dimostrare che un numero XOR con 0 è uguale a se stesso e che un numero XOR con se stesso è uguale a 0.

Il metodo di calcolo sopra riportato: v=2^3^4^4^3^5^6^6^5;

Secondo la legge di commutazione e le regole sopra menzionate

Puoi dedurre il numero che appare una volta (deve soddisfare la condizione preliminare 2k numeri identici)

Sommario

Questo è tutto il contenuto dell'analisi del codice XOR in Java, speriamo che sia utile a tutti. Chi è interessato può continuare a consultare altri argomenti correlati su questo sito. Siamo aperti a suggerimenti, quindi non esitare a lasciare un commento. Grazie per il supporto dei nostri amici!

Dichiarazione: il contenuto di questo articolo è stato prelevato da Internet, di proprietà dei rispettivi autori. Il contenuto è stato contribuito volontariamente dagli utenti di Internet e caricato autonomamente. Questo sito non detiene il diritto di proprietà e non ha effettuato alcuna modifica editoriale, né assume alcuna responsabilità legale correlata. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una email a notice#oldtoolbag.com (sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata la veridicità, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare