Java Xor

Java Xor
Gli operatori bitwise vengono generalmente utilizzati per manipolare o interrogare l'albero indicizzato binario. Sono impiegati per eseguire le operazioni su pezzi separati. Possiamo usarli su qualsiasi tipo di dati integrale tra cui int, char, corto, ecc. Copriremo uno degli operatori bitwise che è l'operatore XOR di Java. L'XOR che è anche definito esclusivo o richiede due operandi booleani. La vera forma di XOR viene restituita quando gli operands trattengono valori diversi. L'operatore XOR è più efficace quando nessuna delle due condizioni booleane è vera allo stesso tempo.

Esempio 1:

L'operatore binario XOR viene calcolato da sinistra a destra quando utilizzato per il programma. L'operatore XOR “^” non è definito per gli argomenti del tipo di dati stringa.

Classe pubblica xOrexample1
public static void main (string [] args)
Booleano Val1 = true;
Val2 booleano = false;
risultato booleano = val1 ^ val2;
Sistema.fuori.println ("Val1 Val2:"+ risultato);
Val1 = true;
Val2 = true;
Risultato = val1 ^ val2;
Sistema.fuori.println ("val1 ^ val2:"+ risultato);
Val1 = false;
Val2 = false;
Risultato = val1 ^ val2;
Sistema.fuori.println ("Val1 Val2:"+ risultato);
Val1 = true;
Val2 = false;
Risultato = val1 ^ val2;
Sistema.fuori.println ("val1 ^ val2: '+ risultato);

Creiamo le variabili booleane "Val1" e "Val2" che vengono dati i valori booleani. Viene definita la variabile "risultato" del tipo booleano che viene utilizzata con l'operatore XOR per valutare l'OPERANDS XOR sia sugli operandi "Val1" che Val2 ". Il metodo println () stampa i risultati dell'operazione XOR. Successivamente, cambiamo i valori booleani dell'operando e assegniamo i valori falsi per ottenere risultati diversi. Quindi, forniamo i valori booleani alternativi a questi operandi per mostrare la funzionalità dell'operatore XOR quando un operando ha un valore reale e l'altro ha un valore falso.

I diversi casi per l'operatore XOR generano risultati diversi. I valori booleani simili danno sempre valori falsi e i diversi valori dell'operando restituiscono sempre true per l'operatore XOR.

Esempio 2:

L'operatore XOR per i valori booleani degli operandi è dimostrato nel primo esempio. Ora, l'operatore XOR può anche essere applicato al valore numerico per il funzionamento XOR bitwise.

Classe pubblica xOrexample2
public static void main (string [] args)
int a = 8;
int b = 2;
Sistema.fuori.println ("a ^ b =" + (a ^ b));

Dichiariamo la variabile "A" di tipo int specificato con il valore intero "8". La prossima variabile che è "B" è anche inizializzata con il valore del numero "2". Successivamente, utilizziamo il metodo println () di Java per eseguire l'operazione XOR sulle variabili precedentemente specificate chiamando l'equazione XOR che viene valutata e stampata.

Il valore binario di "8" è "1000". E il valore binario per "2" è "10". Il risultato ottenuto in forma binaria per questi operandi è "1010" che è il valore di "10" che viene visualizzato nel seguente terminale:

Esempio 3:

L'XOR delle stringhe binarie può essere determinato utilizzando il nostro metodo che impiega l'operatore XOR e qualche ulteriore logica. L'operatore XOR viene utilizzato per entrambe le stringhe semplicemente passando attraverso ogni carattere in entrambe le stringhe contemporaneamente. Tenere conto che XOR può operare sui tipi di dati Char e restituisce 0 se i caratteri sono simili.

Classe pubblica xOrexample3
Public Static String XorbinaryString (String BS1, String BS2)
Stringa x = "";
if (BS1.lunghezza ()> bs2.lunghezza())
String temp = "";
per (int i = 0; i bs1.lunghezza())
String temp = "";
per (int i = 0; i< bs2.length() bs1.length(); i++)
temp += "0";
bs1 = temp + bs1;

per (int i = 0; i< bs1.length(); i++)
X += bs1.charat (i) ^ bs2.Charat (i);

restituire x;

public static void main (string [] args)
Sistema.fuori.println ("1011 ^ 1111:" + xorbinaryString ("1011 ^ 1111"));
Sistema.fuori.println ("1 ^ 111101:" + xorbinaryString ("1 ^ 11101"));
Sistema.fuori.println ("0101 ^ 1:" + xorbinaryString ("0101 ^ 1"));
Sistema.fuori.print ("10000010 ^ 0:" + xorbinaryString ("1000001 ^ 0") + "\ n");

Costruiamo la funzione "XorbinaryString" che prende le variabili BS1 e BS2 del tipo di stringa come argomento del costruttore. Nella funzione "XorbinaryString", dichiariamo la variabile "X" che inizialmente contiene una stringa vuota. Successivamente, abbiamo l'istruzione condizionale IF-ELSE-IF per aggiungere lo zero a queste variabili di stringa "BS1" e "BS2" per rendere uguale la lunghezza delle stringhe binarie. Quindi, abbiamo la distribuzione per loop che attraversa ogni carattere delle stringhe binarie "BS1" e "BS2" e usano queste stringhe binarie con l'operatore XOR per ottenere i risultati XOR da loro. Il metodo principale () viene utilizzato per assegnare i valori binari rispetto alle stringhe binarie chiamando la funzione "XorbinaryString".

I risultati dell'operatore XOR sono ottenuti per la stringa binaria che contiene i diversi valori binari ottenuti utilizzando il metodo personalizzato.

Esempio 4:

L'operatore non può essere utilizzato per svolgere lo stesso compito dell'operatore XOR in Java. Poiché l'operatore XOR restituisce vero solo se entrambe le condizioni sono diverse, l'uso dell'operatore non ci consente di confrontare se la prima condizione e la seconda condizione sono uguali o meno, restituendo true se non sono uguali e false altrimenti.

Classe pubblica Xorexample4
public static void main (string [] args)
booleano x1 = vero;
booleano x2 = false;
booleano x3 = vero;
booleano x4 = false;
if ((x1 = x3))
Sistema.fuori.println ("la condizione di xor è vero");

altro

Sistema.fuori.println ("la condizione di xor è falso");


Dichiariamo alcune variabili booleane che sono intitolate "X1", "X2", "X3" e "X4". Questi sono inizializzati con i valori booleani. Alcuni sono specificati con il valore reale e alcuni contengono falsi. Quindi, abbiamo un blocco di condizione IF-ELSE in cui definiamo la condizione dell'operatore NOT se la variabile "x1" non è uguale alla variabile "x2". La condizione specificata è efficiente che richiede solo una vera condizione per essere vera. Tuttavia, la sua logica richiede diverse condizioni.

L'output del modo alternativo per l'operazione XOR visualizza i seguenti risultati:

Esempio 5:

L'operatore XOR può anche essere utilizzato per scambiare i valori interi senza utilizzare una terza variabile. Questo approccio acquisisce meno memoria e ha una complessità temporale inferiore.

Classe pubblica xOrexample5
STATICO STATICO SWAP (int m, int n)
Sistema.fuori.println ("prima di scambiare.");
Sistema.fuori.println ("m =" + m);
Sistema.fuori.println ("n =" + n);

m ^= n;
n ^= m;
m ^= n;
Sistema.fuori.println ("Dopo lo scambio.");
Sistema.fuori.println ("m =" + m);
Sistema.fuori.println ("n =" + n);

public static void main (string [] args)
Swap (21, 15);

Stabiliamo una funzione "scambio ()" all'interno della classe principale di Java. Il costruttore di funzione "Swap ()" è specificato con i parametri "M" e "N". Successivamente, stampiamo le variabili "M" e "N" per mostrare i valori prima dell'operazione di scambio. Successivamente, applichiamo la tecnica di swap sulle variabili dichiarate "M" e "N" utilizzando l'operatore XOR. Quindi, stampare i valori scambiati per le variabili "M" e "N". Il metodo principale () è chiamato funzione Swap () in cui inizializziamo i valori numerici per le variabili "M" e "N" per lo scambio.

I valori prima dello swapping sono stampati sulla console insieme ai risultati dell'operazione dopo lo scambio:

Esempio 6:

Ora, esiste uno scenario complesso dell'operatore XOR per cercare i valori non ripetuti dall'array dato.

Classe pubblica xOrexample6
public static int non repeatinginteger (int [] intarray)
int myxor
intarray [0];
per (int i = 1; iMyxor = myxor ^ intarray [i];
restituire Myxor;

public static void main (string [] args)
int [] myArray = 19, 26, 45, 26, 45, 82, 19;
int non repeat = non repeatinginteger (myArray);
Sistema.fuori.print ("numeri interi non ripetuti: + non repeat +" \ n ");

Creiamo la funzione "non repeatinginteger" che chiama il costruttore per dichiarare l'array int [] "intarray". Quindi, all'interno del "non repeatinginteger", definiamo l'oggetto "myxor" e specifichiamo l'array "intarray" di lunghezza zero che viene inizializzato con i valori interi nel metodo principale (). L'array è impostato con valori duplicati tranne un valore. Il per loop viene utilizzato per ottenere i valori dagli array. Quindi, questi valori di array sono disposti come (19 ^ 19) ^ (26 ^ 26) ^ (45 ^ 45) ^ 82 nella variabile “Myxor”. Come sappiamo, l'operatore XOR restituisce zero per valori simili. Quindi, tutti i valori simili dell'array diventano zero e il valore non simile è ottenuto da XOR.

Il numero che non viene ripetuto nell'array è "82" che abbiamo recuperato all'interno del terminale dopo la tecnica XOR.

Conclusione

Abbiamo trattato i fondamenti dell'operazione XOR in questo articolo. Acquisisce meno operatori ad alta intensità di memoria ed è più semplice da implementare. Abbiamo utilizzato l'operatore XOR nel programma indicato di Java. Ci viene anche data una tecnica per determinare i valori XOR delle stringhe binarie.