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