logo

C++ Bitwise XOR Operator

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

C++ Bitwise XOR Operator

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.

C++ Bitwise XOR Operator

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 -

  1. Operandene gitt i oppgaven vil alltid være i desimalverdien.
  2. For det første må vi konvertere verdiene til operander til binær
  3. Etter å ha konvertert verdiene til operander i binære tall, sett begge operandene én over hverandre.
  4. Husk at før du bruker eksklusiv OR (XOR) operasjon på dem, vennligst sjekk antall sifre i dem.
  5. Hvis antallet sifre ikke stemmer overens, balanserer de ekstra 0-ene i venstre ende av den lille operanden antallet sifre.
  6. 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.
  7. Til slutt produseres resultatet i form av output.
  8. 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.

  1. 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.
  2. Binær form 'a', dvs. 10 er '1010' og binær form av 'b', dvs. 14 er '1110'.
  3. 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.
  4. Nå setter du de binære sifrene i 'b' ned til de binære sifrene i 'a'.
  5. Til slutt, å bruke XOR-operasjonen en etter en på de tilsvarende bitene samsvarer og noter utdataene.
  6. 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 &lt;&gt; b ; // taking b as input from user c = a ^ b ; // storing XOR result of a and b in c cout &lt;&lt; &apos;Applying XOR operation on a and b: &apos;&lt;&lt; endl ; cout &lt;&lt; &apos;a ^ b = &apos; &lt;&lt; c &lt;&lt; endl ; // Printing the output } </'>

Produksjon

C++ Bitwise XOR Operator

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.

  1. 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.
  2. Binær form 'a', dvs. 3 er 'elleve' og binær form av 'b', dvs. 15 er '1111'.
  3. 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.
  4. Etter balansering er verdien av a '0011' , og b er '1111'.
  5. Nå setter du de binære sifrene i ' b ' ned til de binære sifrene i ' a '.
  6. Til slutt, å bruke XOR-operasjonen en etter en på de tilsvarende bitene samsvarer og noter utdataene.
  7. 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 &lt;&gt; b ; // taking b as input from user c = a ^ b ; // storing XOR result of a and b in c cout &lt;&lt; &apos;Applying XOR operation on a and b: &apos;&lt;&lt; endl ; cout &lt;&lt; &apos;a ^ b = &apos; &lt;&lt; c &lt;&lt; endl ; // Printing the output } </'>

Produksjon

C++ Bitwise XOR Operator