logo

C++ Bitwise XOR Operator

  • Bitwise XOR operator er også kendt som Eksklusiv ELLER
  • Det er angivet ved at bruge '^'
  • Som navnet viser, virker det på bit niveau af operanderne.
  • Bitwise XOR-operatør er kommet under kategorien Bitwise-operatører.
  • I den bitvise eksklusive OR-operator (XOR) kræves to operander, og disse to operander er adskilt af XOR-symbolet, dvs. '^'.
  • For at bestemme outputtet eller resultatet, der kommer ud efter anvendelse af XOR-operatoren på to operander, skal vi følge den logiske sandhedstabel for XOR-operatoren.
  • XOR Truth Table er den matematiske tabel, der er konstrueret ved hjælp af XOR-operatorens korrekte logik.
  • Logikken, der bruges bag XOR-operatoren, er; når XOR-operation anvendes på de to forskellige bits af to operander, så vil resultatet altid producere '1', og hvis XOR-operationen anvendes på de to samme bits af to operander, så producerer resultatet output '0'.

Truth Table of Exclusive OR (XOR) operator

Lad der være to operander; den første er A og den anden er B, de samlede kombinationer af input dannet af disse to operander vil være 4. Ved at bruge den følgende XOR-sandhedstabel vil vi bestemme det tilsvarende output. Resultatet vil blive fanget i C, her C = A ^ B.

I denne sandhedstabel tager vi input i form af bits, dvs. 0 og 1, og outputtet vil også blive genereret i form af bits, dvs. 0 og 1.

C++ Bitwise XOR Operator

Her, i ovenstående XOR Truth-tabel, observerer vi, at når værdierne af operanderne A og B er forskellige, dvs. ( 0, 1 ), ( 1, 0 ), vil resultatet, der kommer ud, altid være 1. Og når værdierne af operanderne A og B er de samme, dvs. ( 0, 0 ), ( 1, 1 ), det resultat, der kommer ud, vil altid være 0.

På samme måde kan vi på denne måde tegne sandhedstabellen for Boolean værdier -

Lad der være to operander; den første er EN og den anden er B . De samlede kombinationer af input dannet af disse to operander vil være 4. Ved at bruge følgende XOR-sandhedstabel vil vi bestemme det tilsvarende output. Resultatet vil blive fanget i C, her C = A ^ B.

I denne sandhedstabel tager vi input i form af sandhedsværdier, dvs. Sand (T) og Falsk (F). Outputtet vil også blive genereret i form af sande værdier, dvs. T og F.

C++ Bitwise XOR Operator

Her, i ovenstående XOR Truth-tabel, observerer vi, at når værdierne af operanderne A og B er forskellige, dvs. (F, T), (T, F), vil resultatet altid være T. Og når værdierne af operanderne A og B er de samme, dvs. (F, F), (T, T), resultatet vil altid være F.

Ud fra tabellerne ovenfor kan vi se det T (sandt) er angivet med én og F (falsk) er angivet med 0.

Trin til at løse et givet problem -

  1. Operanderne i opgaven vil altid være i decimalværdien.
  2. For det første skal vi konvertere værdierne af operander til binær
  3. Efter at have konverteret værdierne af operander til binære tal, skal du lægge begge operander over hinanden.
  4. Husk, at før du anvender eksklusiv ELLER (XOR) operation på dem, skal du venligst kontrollere antal cifre i dem.
  5. Hvis antallet af cifre ikke stemmer overens, afbalancerer de ekstra 0'er i venstre ende af den lille operand antallet af cifre.
  6. Til sidst, ved hjælp af ovenstående sandhedstabel, skal du anvende XOR-operationen på operanderne én efter én, idet du tager en bit ad gangen for at anvende XOR-operationen.
  7. Til sidst produceres resultatet i form af output.
  8. Det producerede output vil være i binær form, konverter nu den binære form til decimalform og noter resultatværdien.

Udførelse af Bitwise Exclusive OR (XOR) operation i C++

Lad os forstå mere detaljeret om udførelsen af ​​XOR-operationen i C++ ved hjælp af eksempler -

hvordan man downloader musik

Eksempel 1: Find den eksklusive ELLER for heltalsværdier; 10 og 14. Forklar det også og skriv udførelseskoden i C++.

Løsning: Lad os overveje to variable, 'a' og 'b', for at gemme de tilsvarende to operander givet i ovenstående spørgsmål, dvs. 10 og 14.

Her er a = 10 og b = 14.

Vi vil følge nedenstående trin for at finde ud af den eksklusive OR for de givne to operander.

  1. Vi ved, at 10 og 14 er i decimalform, og for at anvende bitvise XOR-operation er det nødvendigt at konvertere det til binær form.
  2. Binær form 'a', dvs. 10 er '1010' og binær form af 'b', dvs. 14 er '1110'.
  3. Her observerer vi, at antallet af binære cifre til stede i a er fire, og antallet af binære cifre til stede i b er også 4; Derfor er antallet af binære cifre til stede i begge variabler det samme og allerede afbalanceret, vi behøver ikke tilføje flere antal 0'er for at balancere det.
  4. Nu skal du sætte de binære cifre til stede i 'b' ned til de binære cifre, der er til stede i 'a'.
  5. Til sidst, anvendelse af XOR-operationen én efter én på de tilsvarende bits matcher og noter outputtet.
  6. Det output, der til sidst genereres, vil være i binær form, som ovenstående spørgsmål givet i decimalform, så vi skal konvertere resultatet til decimalform.

Forklaring:

a = 10 (i decimalform)

b = 14 (i decimalform)

Nu, for en XOR b, skal vi konvertere a og b i binær form -

a = 1010 (i binær form)

b = 1110 (i binær form)

Anvender nu XOR-operation på a og b -

a = 1010

b = 1110

--------------------

a ^ b = 0100 (I binær form)

Resultatet af a ^ b er 0100, som er i binær form.

Konverter nu resultatet i decimalform, som er 4.

10^14 = 4

BEMÆRK: Ved at bruge ovenstående XOR-sandhedstabel genereres output af tilsvarende bits.

Vi vil nu anvende den bitvise XOR-operation på 10 og 14 i C++-sprog og få resultatet, dvs. 4.

C++ kode til ovenstående eksempel:

 //************************ 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 } </'>

Produktion

C++ Bitwise XOR Operator

Eksempel 2: Find den eksklusive ELLER for heltalsværdier; 3 og 15. Forklar det også og skriv udførelseskoden i C++.

Løsning: Lad os overveje to variable, 'a' og 'b', for at gemme de tilsvarende to operander givet i ovenstående spørgsmål, dvs. 3 og 15.

Her er a = 3 og b = 15.

Vi vil følge nedenstående trin for at finde ud af den eksklusive OR for de givne to operander.

  1. Vi ved, at 3 og 15 er i decimalform, og for at anvende bitvise XOR-operation er det nødvendigt at konvertere det til binær form.
  2. Binær form 'a', dvs. 3 er 'elleve' og binær form af 'b', dvs. 15 er '1111'.
  3. Her vil vi observere, at antallet af binære cifre til stede i a er to, og antallet af binære cifre til stede i b er fire; derfor er antallet af binære cifre til stede i begge variabler ikke det samme. Så ubalanceret er vi nødt til at tilføje flere antal 0'er på venstre side af det nederste binære tal, dvs. a, som er ' elleve' , for at balancere det.
  4. Efter afbalancering er værdien af ​​a '0011' , og b er '1111'.
  5. Nu skal du sætte de binære cifre til stede i ' b ' ned til de binære cifre der er til stede i ' a '.
  6. Til sidst, anvendelse af XOR-operationen én efter én på de tilsvarende bits matcher og noter outputtet.
  7. Det output, der til sidst genereres, vil være i binær form, som ovenstående spørgsmål givet i decimalform, så vi skal konvertere resultatet til decimalform.

Forklaring:

a = 3 (i decimalform)

b = 15 (i decimalform)

Nu, for en XOR b, skal vi konvertere a og b i binær form -

a = 0011 (i binær form)

b = 1111 (i binær form)

Anvender nu XOR-operation på a og b -

a = 0011

b = 1111

--------------------

a ^ b = 1100 (I binær form)

Resultatet af a ^ b er 1100, som er i binær form.

Konverter nu resultatet i decimalform, som er 12.

3^15 = 12

BEMÆRK: Ved at bruge ovenstående XOR-sandhedstabel genereres output af tilsvarende bits.

Vi vil nu anvende den bitvise XOR-operation på 3 og 15 i C++-sprog og få resultatet, dvs. 12.

C++ kode til ovenstående eksempel:

 //************************ 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 } </'>

Produktion

C++ Bitwise XOR Operator