logo

C++ Bitwise XOR operatorius

  • Bitwise XOR operatorius taip pat žinomas kaip Išskirtinis ARBA
  • Jis žymimas naudojant '^'
  • Kaip rodo pavadinimas, jis veikia ant bitų lygis operandų.
  • Bitwise XOR operatorius pateko į Bitwise operatorių kategoriją.
  • Išskirtiniame OR operatoriuje (XOR) reikia dviejų operandų, o šie du operandai yra atskirti simboliu XOR, t. y. „^“.
  • Norėdami nustatyti išvestį arba rezultatą, kuris gaunamas pritaikius XOR operatorių dviem operandams, turime vadovautis XOR operatoriaus loginės tiesos lentele.
  • XOR tiesos lentelė yra matematinė lentelė, sudaryta naudojant tinkamą XOR operatoriaus logiką.
  • Už XOR operatoriaus naudojama logika yra; kai abiem taikoma XOR operacija skirtinga dviejų operandų bitų, tada rezultatas visada bus gautas '1', o jei XOR operacija taikoma dviem tas pats dviejų operandų bitai, tada rezultatas sukuria išvestį '0'.

Išskirtinio OR (XOR) operatoriaus tiesos lentelė

Tegul yra du operandai; Pirmasis yra A, o antrasis yra B, bendras šių dviejų operandų įvesties derinys bus 4. Naudodami šią XOR tiesos lentelę nustatysime atitinkamą išvestį. Rezultatas bus užfiksuotas C, čia C = A ^ B.

Šioje tiesos lentelėje įvestis gauname bitų pavidalu, ty 0 ir 1, o išvestis taip pat bus generuojama bitų pavidalu, ty 0 ir 1.

C++ Bitwise XOR operatorius

Čia, aukščiau pateiktoje XOR tiesos lentelėje, pastebime, kad kai operandų A ir B reikšmės yra skirtingos, t. y., ( 0, 1 ), ( 1, 0 ), rezultatas visada bus 1. operandų A ir B reikšmės yra vienodos, t.y., ( 0, 0 ), ( 1, 1 ), išeinantis rezultatas visada bus 0.

Panašiai tokiu būdu galime sudaryti tiesos lentelę Būlio vertybės -

Tegul yra du operandai; pirmasis yra A o antrasis yra B . Bendros šių dviejų operandų įvesties kombinacijos bus 4. Naudodami šią XOR tiesos lentelę nustatysime atitinkamą išvestį. Rezultatas bus užfiksuotas C, čia C = A ^ B.

Šioje tiesos lentelėje įvestis yra tiesos verčių forma, t. y. teisinga ( T ) ir klaidinga ( F ). Išvestis taip pat bus sugeneruota kaip tikrosios reikšmės, ty T ir F.

C++ Bitwise XOR operatorius

Čia, aukščiau pateiktoje XOR tiesos lentelėje, pastebime, kad kai operandų A ir B reikšmės skiriasi, t. y. ( F, T ), ( T, F ), rezultatas visada bus T. operandų A ir B reikšmės yra vienodos, ty ( F, F ), ( T, T ), rezultatas visada bus F.

Iš aukščiau pateiktų lentelių mes tai pastebime T (tiesa) žymimas vienetu, o F (klaidingas) - 0.

java programavimo kalbos pamoka

Veiksmai, kaip išspręsti bet kurią problemą -

  1. Užduotyje pateikti operandai visada bus dešimtainės reikšmės.
  2. Pirmiausia turime konvertuoti operandų reikšmes į dvejetainis
  3. Pakeitę operandų reikšmes dvejetainiais skaičiais, abu operandus uždėkite vieną ant kito.
  4. Atminkite, kad prieš taikydami jiems išskirtinę OR (XOR) operaciją, patikrinkite skaitmenų skaičius juose.
  5. Jei skaitmenų skaičius nesutampa, papildomi 0 mažojo operando kairiajame gale subalansuoja skaitmenų skaičių.
  6. Galiausiai, naudodami aukščiau pateiktą tiesos lentelę, operandams po vieną taikykite operaciją XOR, naudodami vieną bitą XOR operacijai taikyti.
  7. Pagaliau rezultatas gaunamas produkcijos pavidalu.
  8. Išvestis bus dvejetaine forma, dabar konvertuokite dvejetainę formą į dešimtainę formą ir užsirašykite rezultato reikšmę.

Bitwise Exclusive OR (XOR) operacijos vykdymas C++

Leiskite mums išsamiau suprasti XOR operacijos vykdymą C++, naudodamiesi pavyzdžiais -

1 pavyzdys: Raskite išskirtinį sveikųjų skaičių ARBA; 10 ir 14. Taip pat paaiškinkite ir parašykite vykdymo kodą C++.

Sprendimas: Panagrinėkime du kintamuosius „a“ ir „b“, kad išsaugotume atitinkamus du operandus, pateiktus aukščiau pateiktame klausime, ty 10 ir 14.

Čia a = 10 ir b = 14.

Atliksime toliau nurodytus veiksmus, kad išsiaiškintume išskirtinį nurodytų dviejų operandų ARBA.

  1. Žinome, kad 10 ir 14 yra dešimtainės formos, o norint taikyti bitinę XOR operaciją, būtina ją konvertuoti į dvejetainę formą.
  2. Dvejetainė forma 'a', t.y. 10 yra „1010“ ir dvejetainė „b“ forma, t. y. 14 yra „1110“.
  3. Čia pastebime, kad dvejetainių skaitmenų, esančių a, skaičius yra keturi, o dvejetainių skaitmenų skaičius b taip pat yra 4; taigi dvejetainių skaitmenų skaičius abiejuose kintamuosiuose yra toks pat ir jau subalansuotas, mums nereikia pridėti daugiau 0 skaičių, kad jį subalansuotume.
  4. Dabar „b“ esančius dvejetainius skaitmenis sumažiname iki dvejetainių skaitmenų, esančių raidėje „a“.
  5. Galiausiai, XOR operacijos taikymas po vieną atitinkamiems bitams sutampa ir užsirašykite išvestį.
  6. Sugeneruota išvestis pagaliau bus dvejetaine forma, kaip aukščiau pateiktas klausimas dešimtaine forma, todėl rezultatą turime konvertuoti į dešimtainę formą.

Paaiškinimas:

a = 10 (dešimtaine forma)

listmazgas

b = 14 ( dešimtaine forma )

Dabar XOR b atveju turime konvertuoti a ir b dvejetaine forma -

a = 1010 (dvejetaine forma)

b = 1110 ( dvejetaine forma )

Dabar, taikant XOR operaciją a ir b -

a = 1010

b = 1110

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

a ^ b = 0100 ( Dvejetaine forma )

Rezultatas a ^ b yra 0100, kuris yra dvejetainės formos.

gimp pakeisti spalvą

Dabar rezultatas konvertuojamas į dešimtainę formą, kuri yra 4.

10^14 = 4

PASTABA: naudojant aukščiau pateiktą XOR tiesos lentelę, generuojama atitinkamų bitų išvestis.

Dabar taikysime bitų XOR operaciją 10 ir 14 C++ kalba ir gausime rezultatą, ty 4.

C++ kodas aukščiau pateiktam pavyzdžiui:

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

Išvestis

C++ Bitwise XOR operatorius

2 pavyzdys: Raskite išskirtinį sveikųjų skaičių ARBA; 3 ir 15. Taip pat paaiškinkite tai ir parašykite vykdymo kodą C++.

Sprendimas: Panagrinėkime du kintamuosius „a“ ir „b“, kad išsaugotume atitinkamus du operandus, pateiktus aukščiau pateiktame klausime, ty 3 ir 15.

Čia a = 3 ir b = 15.

Atliksime toliau nurodytus veiksmus, kad išsiaiškintume išskirtinį nurodytų dviejų operandų ARBA.

  1. Žinome, kad 3 ir 15 yra dešimtainės formos, o norint taikyti bitinę XOR operaciją, būtina ją konvertuoti į dvejetainę formą.
  2. Dvejetainė forma 'a', t.y. 3 yra 'vienuolika' ir dvejetainė „b“ forma, t. y. 15 yra „1111“.
  3. Čia pastebėsime, kad dvejetainių skaitmenų, esančių a, skaičius yra du, o dvejetainių skaitmenų skaičius b yra keturi; todėl abiejuose kintamuosiuose esančių dvejetainių skaitmenų skaičius nėra vienodas. Taigi, nesubalansuotai, turime pridėti daugiau 0 skaičių kairėje apatinio dvejetainio skaičiaus pusėje, ty a, kuris yra ' vienuolika' , subalansuoti.
  4. Po balansavimo a reikšmė yra '0011' , o b yra „1111“.
  5. Dabar suskirstykite dvejetainius skaitmenis, esančius 'b', iki dvejetainių skaitmenų, esančių 'a'.
  6. Galiausiai, XOR operacijos taikymas po vieną atitinkamiems bitams sutampa ir užsirašykite išvestį.
  7. Sugeneruota išvestis pagaliau bus dvejetaine forma, kaip aukščiau pateiktas klausimas dešimtaine forma, todėl rezultatą turime konvertuoti į dešimtainę formą.

Paaiškinimas:

a = 3 (dešimtaine forma)

b = 15 ( dešimtaine forma )

Dabar XOR b atveju turime konvertuoti a ir b dvejetaine forma -

pavadinkite miestą JAV

a = 0011 ( dvejetaine forma )

java enums

b = 1111 ( dvejetaine forma )

Dabar, taikant XOR operaciją a ir b -

a = 0011

b = 1111

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

a ^ b = 1100 ( Dvejetaine forma )

Rezultatas a ^ b yra 1100, kuris yra dvejetainės formos.

Dabar rezultatas konvertuojamas į dešimtainę formą, kuri yra 12.

3^15 = 12

PASTABA: naudojant aukščiau pateiktą XOR tiesos lentelę, generuojama atitinkamų bitų išvestis.

Dabar taikysime bitų XOR operaciją 3 ir 15 C++ kalba ir gausime rezultatą, ty 12.

C++ kodas aukščiau pateiktam pavyzdžiui:

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

Išvestis

C++ Bitwise XOR operatorius