- Bitwise XOR-operatør er også kjent som Eksklusiv ELLER
- Det er angitt ved å bruke '^'
- Som navnet viser, fungerer det på bitnivå av operandene.
- Bitwise XOR-operatør har kommet inn under kategorien Bitwise-operatører.
- I den bitvise eksklusive OR-operatoren (XOR) kreves to operander, og disse to operandene er atskilt med XOR-symbolet, dvs. '^'.
- For å bestemme utgangen eller resultatet som kommer ut etter bruk av XOR-operatoren på to operander, må vi følge den logiske sannhetstabellen til XOR-operatoren.
- XOR Truth Table er den matematiske tabellen konstruert ved å bruke den riktige logikken til XOR-operatøren.
- Logikken som brukes bak XOR-operatøren er; når XOR-operasjon brukes på de to annerledes biter av to operander, så vil resultatet alltid produsere '1', og hvis XOR-operasjonen brukes på de to samme biter av to operander, så produserer resultatet utdata '0'.
Sannhetstabell for eksklusiv ELLER (XOR)-operatør
La det være to operander; den første er A og den andre er B, de totale kombinasjonene av input dannet av disse to operandene vil være 4. Ved å bruke følgende XOR-sannhetstabell, vil vi bestemme den tilsvarende utgangen. Resultatet vil bli fanget i C, her C = A ^ B.
I denne sannhetstabellen tar vi input i form av biter, dvs. 0 og 1, og utgangen vil også bli generert i form av biter, dvs. 0 og 1.
Her, i XOR Truth-tabellen ovenfor, observerer vi at når verdiene til operandene A og B er forskjellige, dvs. ( 0, 1 ), ( 1, 0 ), vil resultatet som kommer ut alltid være 1. Og når verdiene til operandene A og B er de samme, dvs. ( 0, 0 ), ( 1, 1 ), resultatet som kommer ut vil alltid være 0.
På samme måte kan vi på denne måten tegne sannhetstabellen for boolsk verdier -
La det være to operander; den første er EN og den andre er B . De totale kombinasjonene av input dannet av disse to operandene vil være 4. Ved å bruke følgende XOR-sannhetstabell, vil vi bestemme den tilsvarende utgangen. Resultatet vil bli fanget i C, her C = A ^ B.
I denne sannhetstabellen tar vi innspill i form av sannhetsverdier, dvs. Sann (T) og Usann (F). Utdataene vil også bli generert i form av sanne verdier, dvs. T og F.
Her, i XOR Truth-tabellen ovenfor, observerer vi at når verdiene til operandene A og B er forskjellige, dvs. ( F, T ), ( T, F ), vil resultatet alltid være T. Og når verdiene til operandene A og B er de samme, dvs. (F, F), (T, T), resultatet vil alltid være F.
Fra tabellene ovenfor ser vi det T ( Sant ) er merket med én og F ( Falsk ) er merket med 0.
Trinn for å løse et gitt problem -
- Operandene gitt i oppgaven vil alltid være i desimalverdien.
- For det første må vi konvertere verdiene til operander til binær
- Etter å ha konvertert verdiene til operander i binære tall, sett begge operandene én over hverandre.
- Husk at før du bruker eksklusiv OR (XOR) operasjon på dem, vennligst sjekk antall sifre i dem.
- Hvis antallet sifre ikke stemmer overens, balanserer de ekstra 0-ene i venstre ende av den lille operanden antallet sifre.
- Til slutt, ved hjelp av sannhetstabellen ovenfor, bruk XOR-operasjonen på operandene en etter en, og ta en bit om gangen for å bruke XOR-operasjonen.
- Til slutt produseres resultatet i form av output.
- Utdataene som produseres vil være i binær form, konverter nå den binære formen til desimalform og noter ned resultatverdien.
Utførelse av Bitwise Exclusive OR (XOR) operasjon i C++
La oss forstå mer detaljert om utførelsen av XOR-operasjonen i C++ ved hjelp av eksempler -
hvordan laste ned musikk
Eksempel 1: Finn den eksklusive ELLER for heltallsverdier; 10 og 14. Forklar det også og skriv utførelseskoden i C++.
Løsning: La oss vurdere to variabler, 'a' og 'b', for å lagre de tilsvarende to operandene gitt i spørsmålet ovenfor, dvs. 10 og 14.
Her er a = 10 og b = 14.
Vi vil følge trinnene nedenfor for å finne ut den eksklusive ELLER for de gitte to operandene.
- Vi vet at 10 og 14 er i desimalform, og for å bruke bitvis XOR-operasjon er det nødvendig å konvertere det til binær form.
- Binær form 'a', dvs. 10 er '1010' og binær form av 'b', dvs. 14 er '1110'.
- Her ser vi at antallet av binære sifre i a er fire og antallet av binære sifre i b er også 4; Derfor er antallet binære sifre som er tilstede i begge variablene det samme og allerede balansert, vi trenger ikke legge til flere 0-er for å balansere det.
- Nå setter du de binære sifrene i 'b' ned til de binære sifrene i 'a'.
- Til slutt, å bruke XOR-operasjonen en etter en på de tilsvarende bitene samsvarer og noter utdataene.
- Utdataene som til slutt genereres vil være i binær form, som spørsmålet ovenfor gitt i desimalformen, så vi må konvertere resultatet til desimalform.
Forklaring:
a = 10 (i desimalform)
b = 14 (i desimalform)
Nå, for en XOR b, må vi konvertere a og b i binær form -
a = 1010 (i binær form)
b = 1110 (i binær form)
Nå bruker du XOR-operasjon på a og b -
a = 1010
b = 1110
---------------
a ^ b = 0100 (I binær form)
Resultatet av a ^ b er 0100, som er i binær form.
Konverter nå resultatet i desimalform, som er 4.
10^14 = 4
MERK: Ved å bruke XOR-sannhetstabellen ovenfor, genereres utdataene til tilsvarende biter.
Vi vil nå bruke den bitvise XOR-operasjonen på 10 og 14 i C++-språket og få resultatet, dvs. 4.
C++-kode for eksempelet ovenfor:
//************************ C++ Code ****************************** #include using namespace std; int main () { int a, b, c ; // Initializing integer variables to store data values cout <' << endl ; cout <> a ; // taking a as input from user cout <> b ; // taking b as input from user c = a ^ b ; // storing XOR result of a and b in c cout << 'Applying XOR operation on a and b: '<< endl ; cout << 'a ^ b = ' << c << endl ; // Printing the output } </'>
Produksjon
Eksempel 2: Finn den eksklusive ELLER for heltallsverdier; 3 og 15. Forklar det også og skriv utførelseskoden i C++.
Løsning: La oss vurdere to variabler, 'a' og 'b', for å lagre de tilsvarende to operandene gitt i spørsmålet ovenfor, dvs. 3 og 15.
Her er a = 3 og b = 15.
Vi vil følge trinnene nedenfor for å finne ut den eksklusive ELLER for de gitte to operandene.
- Vi vet at 3 og 15 er i desimalform, og for å bruke bitvis XOR-operasjon er det nødvendig å konvertere det til binær form.
- Binær form 'a', dvs. 3 er 'elleve' og binær form av 'b', dvs. 15 er '1111'.
- Her vil vi observere at antallet av binære sifre i a er to og antallet av binære sifre i b er fire; Derfor er antallet binære sifre som er tilstede i begge variablene ikke det samme. Derfor, ubalansert, må vi legge til flere antall 0-er på venstre side av det nedre binære tallet, dvs. a, som er ' elleve' , for å balansere det.
- Etter balansering er verdien av a '0011' , og b er '1111'.
- Nå setter du de binære sifrene i ' b ' ned til de binære sifrene i ' a '.
- Til slutt, å bruke XOR-operasjonen en etter en på de tilsvarende bitene samsvarer og noter utdataene.
- Utdataene som til slutt genereres vil være i binær form, som spørsmålet ovenfor gitt i desimalformen, så vi må konvertere resultatet til desimalform.
Forklaring:
a = 3 (i desimalform)
b = 15 (i desimalform)
Nå, for en XOR b, må vi konvertere a og b i binær form -
a = 0011 (i binær form)
b = 1111 (i binær form)
Bruker nå XOR-operasjon på a og b -
a = 0011
b = 1111
---------------
a ^ b = 1100 (I binær form)
Resultatet av a ^ b er 1100, som er i binær form.
Konverter nå resultatet i desimalform, som er 12.
3^15 = 12
MERK: Ved å bruke XOR-sannhetstabellen ovenfor, genereres utdataene til tilsvarende biter.
Vi vil nå bruke den bitvise XOR-operasjonen på 3 og 15 i C++-språk og få resultatet, dvs. 12.
C++-kode for eksempelet ovenfor:
//************************ C++ Code ****************************** #include using namespace std; int main () { int a, b, c ; // Initializing integer variables to store data values cout <' << endl ; cout <> a ; // taking a as input from user cout <> b ; // taking b as input from user c = a ^ b ; // storing XOR result of a and b in c cout << 'Applying XOR operation on a and b: '<< endl ; cout << 'a ^ b = ' << c << endl ; // Printing the output } </'>
Produksjon