- 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.
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.
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 -
- Operanderne i opgaven vil altid være i decimalværdien.
- For det første skal vi konvertere værdierne af operander til binær
- Efter at have konverteret værdierne af operander til binære tal, skal du lægge begge operander over hinanden.
- Husk, at før du anvender eksklusiv ELLER (XOR) operation på dem, skal du venligst kontrollere antal cifre i dem.
- Hvis antallet af cifre ikke stemmer overens, afbalancerer de ekstra 0'er i venstre ende af den lille operand antallet af cifre.
- 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.
- Til sidst produceres resultatet i form af output.
- 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.
- 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.
- Binær form 'a', dvs. 10 er '1010' og binær form af 'b', dvs. 14 er '1110'.
- 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.
- 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'.
- Til sidst, anvendelse af XOR-operationen én efter én på de tilsvarende bits matcher og noter outputtet.
- 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 <> 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 } </'>
Produktion
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.
- 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.
- Binær form 'a', dvs. 3 er 'elleve' og binær form af 'b', dvs. 15 er '1111'.
- 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.
- Efter afbalancering er værdien af a '0011' , og b er '1111'.
- 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 '.
- Til sidst, anvendelse af XOR-operationen én efter én på de tilsvarende bits matcher og noter outputtet.
- 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 <> 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 } </'>
Produktion