- Bitwise XOR-operator är också känd som Exklusiv ELLER
- Det betecknas med hjälp av '^'
- Som namnet visar fungerar det på bitnivå av operanderna.
- Bitwise XOR-operatör har hamnat under kategorin Bitwise-operatorer.
- I den bitvisa exklusiva ELLER-operatorn (XOR) krävs två operander, och dessa två operander är åtskilda av XOR-symbolen, dvs '^'.
- För att bestämma utdata eller resultat som kommer ut efter att ha tillämpat XOR-operatorn på två operander, måste vi följa den logiska sanningstabellen för XOR-operatorn.
- XOR Truth Table är den matematiska tabellen som är konstruerad med hjälp av den korrekta logiken hos XOR-operatorn.
- Logiken som används bakom XOR-operatorn är; när XOR-operation tillämpas på de två annorlunda bitar av två operander, då kommer resultatet alltid att producera '1', och om XOR-operationen tillämpas på de två samma bitar av två operander så producerar resultatet utdata '0'.
Sanningstabell för Exklusiv ELLER (XOR) operator
Låt det finnas två operander; den första är A och den andra är B, de totala kombinationerna av input som bildas av dessa två operander kommer att vara 4. Genom att använda följande XOR-sanningstabell kommer vi att bestämma motsvarande utdata. Resultatet kommer att fångas i C, här C = A ^ B.
I den här sanningstabellen tar vi indata i form av bitar, dvs 0 och 1, och utdata kommer också att genereras i form av bitar, dvs 0 och 1.
Här, i ovanstående XOR Truth-tabell, observerar vi att när värdena för operanderna A och B är olika, dvs ( 0, 1 ), ( 1, 0 ), kommer resultatet som kommer ut alltid att vara 1. Och när värdena för operanderna A och B är desamma, dvs ( 0, 0 ), ( 1, 1 ), resultatet som kommer ut kommer alltid att vara 0.
På samma sätt kan vi på detta sätt rita sanningstabellen för Boolean värden -
Låt det finnas två operander; den första är A och den andra är B . De totala kombinationerna av indata som bildas av dessa två operander kommer att vara 4. Genom att använda följande XOR-sanningstabell kommer vi att bestämma motsvarande utdata. Resultatet kommer att fångas i C, här C = A ^ B.
I denna sanningstabell tar vi input i form av sanningsvärden, det vill säga Sant (T) och Falskt (F). Utdata kommer också att genereras i form av sanna värden, dvs T och F.
Här, i ovanstående XOR-sanningstabell, observerar vi att när värdena för operanderna A och B är olika, dvs (F, T), (T, F), kommer resultatet alltid att vara T. Och när värdena för operanderna A och B är samma, dvs (F, F), (T, T), resultatet kommer alltid att vara F.
Från tabellerna ovan ser vi det T (Sant) betecknas med ett och F (falskt) betecknas med 0.
oföränderlig lista
Steg för att lösa ett givet problem -
- De operander som anges i problemet kommer alltid att vara i decimalvärdet.
- För det första måste vi konvertera värdena för operander till binär
- Efter att ha konverterat värdena på operander till binära tal, lägg båda operanderna en över varandra.
- Kom ihåg att innan du använder exklusiv ELLER (XOR) operation på dem, vänligen kontrollera antal siffror i dem.
- Om antalet siffror inte stämmer överens, balanserar de extra nollorna i den vänstra änden av den lilla operanden antalet siffror.
- Till sist, med hjälp av ovanstående sanningstabell, tillämpa XOR-operationen på operanderna en efter en, ta en bit i taget för att tillämpa XOR-operationen.
- Slutligen produceras resultatet i form av output.
- Utdata som produceras kommer att vara i binär form, konvertera nu den binära formen till decimalform och anteckna resultatvärdet.
Exekvering av Bitwise Exclusive OR (XOR) operation i C++
Låt oss förstå mer detaljerat om exekveringen av XOR-operationen i C++ med hjälp av exempel -
Exempel 1: Hitta det exklusiva ELLER för heltalsvärden; 10 och 14. Förklara det också och skriv exekveringskoden i C++.
Lösning: Låt oss överväga två variabler, 'a' och 'b', för att lagra de motsvarande två operanderna som anges i ovanstående fråga, dvs. 10 och 14.
Här är a = 10 och b = 14.
Vi kommer att följa stegen nedan för att ta reda på det exklusiva ELLER för de givna två operanderna.
- Vi vet att 10 och 14 är i decimalform, och för att tillämpa bitvis XOR-operation är det nödvändigt att konvertera det till binär form.
- Binär form 'a', dvs 10 är '1010' och binär form av 'b', dvs 14 är '1110'.
- Här observerar vi att antalet binära siffror som finns i a är fyra och antalet binära siffror som finns i b är också 4; Därför är antalet binära siffror som finns i båda variablerna detsamma och redan balanserade, vi behöver inte lägga till fler antal nollor för att balansera det.
- Lägg nu de binära siffrorna som finns i 'b' ner till de binära siffrorna som finns i 'a'.
- Slutligen, applicering av XOR-operationen en efter en på motsvarande bitar matchar och noterar utmatningen.
- Utdata som äntligen genereras kommer att vara i binär form, som ovanstående fråga ges i decimalform, så vi måste konvertera resultatet till decimalform.
Förklaring:
a = 10 (i decimalform)
instans av i java
b = 14 (i decimalform)
Nu, för en XOR b, måste vi konvertera a och b i binär form -
a = 1010 (i binär form)
b = 1110 (i binär form)
Nu tillämpar XOR-operation på a och b -
a = 1010
b = 1110
---------------
a ^ b = 0100 (I binär form)
Resultatet av a ^ b är 0100, vilket är i binär form.
sträng jämför java
Konvertera nu resultatet i decimalform, vilket är 4.
10^14 = 4
OBS: Genom att använda ovanstående XOR-sanningstabell genereras utdata från motsvarande bitar.
Vi kommer nu att tillämpa den bitvisa XOR-operationen på 10 och 14 i C++-språk och få resultatet, dvs 4.
C++-kod för ovanstående exempel:
//************************ 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
Exempel 2: Hitta det exklusiva ELLER för heltalsvärden; 3 och 15. Förklara det också och skriv exekveringskoden i C++.
Lösning: Låt oss överväga två variabler, 'a' och 'b', för att lagra motsvarande två operander som ges i ovanstående fråga, dvs. 3 och 15.
Här är a = 3 och b = 15.
Vi kommer att följa stegen nedan för att ta reda på det exklusiva ELLER för de givna två operanderna.
- Vi vet att 3 och 15 är i decimalform, och för att tillämpa bitvis XOR-operation är det nödvändigt att konvertera det till binär form.
- Binär form 'a', dvs 3 är 'elva' och binär form av 'b', dvs 15 är '1111'.
- Här kommer vi att observera att antalet binära siffror som finns i a är två och antalet binära siffror som finns i b är fyra; därför är antalet binära siffror som finns i båda variablerna inte detsamma. Obalanserat måste vi alltså lägga till fler antal nollor på vänster sida av det lägre binära talet, dvs a, som är ' elva' , för att balansera det.
- Efter balansering är värdet av a '0011' , och b är '1111'.
- Lägg nu de binära siffrorna som finns i ' b ' ner till de binära siffrorna som finns i ' a '.
- Slutligen, applicering av XOR-operationen en efter en på motsvarande bitar matchar och noterar utmatningen.
- Utdata som äntligen genereras kommer att vara i binär form, som ovanstående fråga ges i decimalform, så vi måste konvertera resultatet till decimalform.
Förklaring:
a = 3 (i decimalform)
b = 15 ( i decimalform )
Nu, för en XOR b, måste vi konvertera a och b i binär form -
java int i sträng
a = 0011 (i binär form)
fånga och prova java
b = 1111 (i binär form)
Nu tillämpar XOR-operation på a och b -
a = 0011
b = 1111
---------------
a ^ b = 1100 (I binär form)
Resultatet av a ^ b är 1100, vilket är i binär form.
Konvertera nu resultatet i decimalform, vilket är 12.
3^15 = 12
OBS: Genom att använda ovanstående XOR-sanningstabell genereras utdata från motsvarande bitar.
Vi kommer nu att tillämpa den bitvisa XOR-operationen på 3 och 15 i C++-språk och få resultatet, d.v.s. 12.
C++-kod för ovanstående exempel:
//************************ 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