logo

C++ Bitwise XOR Operator

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

C++ Bitwise XOR Operator

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.

C++ Bitwise XOR Operator

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 -

  1. De operander som anges i problemet kommer alltid att vara i decimalvärdet.
  2. För det första måste vi konvertera värdena för operander till binär
  3. Efter att ha konverterat värdena på operander till binära tal, lägg båda operanderna en över varandra.
  4. Kom ihåg att innan du använder exklusiv ELLER (XOR) operation på dem, vänligen kontrollera antal siffror i dem.
  5. Om antalet siffror inte stämmer överens, balanserar de extra nollorna i den vänstra änden av den lilla operanden antalet siffror.
  6. 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.
  7. Slutligen produceras resultatet i form av output.
  8. 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.

  1. 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.
  2. Binär form 'a', dvs 10 är '1010' och binär form av 'b', dvs 14 är '1110'.
  3. 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.
  4. Lägg nu de binära siffrorna som finns i 'b' ner till de binära siffrorna som finns i 'a'.
  5. Slutligen, applicering av XOR-operationen en efter en på motsvarande bitar matchar och noterar utmatningen.
  6. 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 &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

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.

  1. 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.
  2. Binär form 'a', dvs 3 är 'elva' och binär form av 'b', dvs 15 är '1111'.
  3. 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.
  4. Efter balansering är värdet av a '0011' , och b är '1111'.
  5. Lägg nu de binära siffrorna som finns i ' b ' ner till de binära siffrorna som finns i ' a '.
  6. Slutligen, applicering av XOR-operationen en efter en på motsvarande bitar matchar och noterar utmatningen.
  7. 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 &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