- 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.
Č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.
Č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ą -
- Užduotyje pateikti operandai visada bus dešimtainės reikšmės.
- Pirmiausia turime konvertuoti operandų reikšmes į dvejetainis
- Pakeitę operandų reikšmes dvejetainiais skaičiais, abu operandus uždėkite vieną ant kito.
- Atminkite, kad prieš taikydami jiems išskirtinę OR (XOR) operaciją, patikrinkite skaitmenų skaičius juose.
- Jei skaitmenų skaičius nesutampa, papildomi 0 mažojo operando kairiajame gale subalansuoja skaitmenų skaičių.
- Galiausiai, naudodami aukščiau pateiktą tiesos lentelę, operandams po vieną taikykite operaciją XOR, naudodami vieną bitą XOR operacijai taikyti.
- Pagaliau rezultatas gaunamas produkcijos pavidalu.
- 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.
- Žinome, kad 10 ir 14 yra dešimtainės formos, o norint taikyti bitinę XOR operaciją, būtina ją konvertuoti į dvejetainę formą.
- Dvejetainė forma 'a', t.y. 10 yra „1010“ ir dvejetainė „b“ forma, t. y. 14 yra „1110“.
- Č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.
- Dabar „b“ esančius dvejetainius skaitmenis sumažiname iki dvejetainių skaitmenų, esančių raidėje „a“.
- Galiausiai, XOR operacijos taikymas po vieną atitinkamiems bitams sutampa ir užsirašykite išvestį.
- 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 <> 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 } </'>
Išvestis
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.
- Žinome, kad 3 ir 15 yra dešimtainės formos, o norint taikyti bitinę XOR operaciją, būtina ją konvertuoti į dvejetainę formą.
- Dvejetainė forma 'a', t.y. 3 yra 'vienuolika' ir dvejetainė „b“ forma, t. y. 15 yra „1111“.
- Č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.
- Po balansavimo a reikšmė yra '0011' , o b yra „1111“.
- Dabar suskirstykite dvejetainius skaitmenis, esančius 'b', iki dvejetainių skaitmenų, esančių 'a'.
- Galiausiai, XOR operacijos taikymas po vieną atitinkamiems bitams sutampa ir užsirašykite išvestį.
- 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 <> 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 } </'>
Išvestis