logo

C++ Bitwise XOR operator

  • Bitni XOR operator poznat je i kao Isključivi OR
  • Označava se pomoću '^'
  • Kao što naziv govori, radi na razina bita od operanda.
  • Bitwise XOR operator spada u kategoriju Bitwise operatora.
  • U bitovno ekskluzivnom ILI operatoru (XOR), potrebna su dva operanda, a ta su dva operanda odvojena XOR simbolom, tj. '^'.
  • Da bismo odredili izlaz ili rezultat koji izlazi nakon primjene XOR operatora na dva operanda, moramo slijediti tablicu logičke istine XOR operatora.
  • XOR tablica istinitosti matematička je tablica konstruirana korištenjem odgovarajuće logike XOR operatora.
  • Logika koja se koristi iza XOR operatora je; kad god se operacija XOR primijeni na dva drugačiji bitova dvaju operanda, tada će rezultat uvijek proizvesti '1', a ako se operacija XOR primijeni na dvije isti bitovi dvaju operanda tada rezultat daje izlaz '0'.

Tablica istinitosti operatora Isključivo ILI (XOR).

Neka postoje dva operanda; prvi je A, a drugi je B, ukupne kombinacije ulaza koje tvore ova dva operanda bit će 4. Korištenjem sljedeće XOR tablice istine, odredit ćemo odgovarajući izlaz. Rezultat će biti zabilježen u C-u, ovdje C = A ^ B.

U ovoj tablici istine uzimamo ulaz u obliku bitova, tj. 0 i 1, a izlaz će također biti generiran u obliku bitova, tj. 0 i 1.

C++ Bitwise XOR operator

Ovdje, u gornjoj XOR tablici istinitosti, primjećujemo da kada su vrijednosti operanda A i B različite, tj. (0, 1), (1, 0), rezultat koji izlazi uvijek će biti 1. A kada vrijednosti operanda A i B su iste, tj. (0, 0), (1, 1), rezultat koji izlazi uvijek će biti 0.

Slično, na ovaj način, možemo nacrtati tablicu istinitosti za Booleov vrijednosti -

Neka postoje dva operanda; prvi je A a drugi je B . Ukupne kombinacije ulaza koje tvore ova dva operanda bit će 4. Korištenjem sljedeće XOR tablice istine, odredit ćemo odgovarajući izlaz. Rezultat će biti zabilježen u C, ovdje C = A ^ B.

U ovu tablicu istine unosimo u obliku istinitih vrijednosti, tj. Točno (T) i Netočno (F). Izlaz će također biti generiran u obliku pravih vrijednosti, tj. T i F.

C++ Bitwise XOR operator

Ovdje, u gornjoj XOR tablici istinitosti, primjećujemo da, kada su vrijednosti operanda A i B različite, tj. (F, T), (T, F), rezultat će uvijek biti T. A kada vrijednosti operanda A i B su iste, tj. (F, F), (T, T), rezultat će uvijek biti F.

Iz gornjih tablica to vidimo T (Istina) je označeno sa jedan, a F (Netočno) je označeno sa 0.

Koraci za rješavanje bilo kojeg problema -

  1. Operandi dani u problemu uvijek će biti u decimalnoj vrijednosti.
  2. Prvo moramo pretvoriti vrijednosti operanda u binarni
  3. Nakon pretvaranja vrijednosti operanda u binarne brojeve, stavite oba operanda jedan preko drugog.
  4. Imajte na umu da prije primjene operacije isključivog ILI (XOR) na njih provjerite broj znamenki u njima.
  5. Ako se broj znamenki ne podudara, dodatne 0 na lijevom kraju malog operanda uravnotežuju broj znamenki.
  6. Na kraju, uz pomoć gornje tablice istine, primijenite operaciju XOR na operande jedan po jedan, uzimajući jedan po bit za primjenu operacije XOR.
  7. Na kraju, rezultat se proizvodi u obliku izlaza.
  8. Izlaz će biti u binarnom obliku, sada pretvorite binarni oblik u decimalni oblik i zabilježite vrijednost rezultata.

Izvršenje Bitwise Exclusive OR (XOR) operacije u C++

Razmotrimo detaljnije o izvršavanju operacije XOR u C++ uz pomoć primjera -

Primjer 1: Pronađite isključivi OR cjelobrojnih vrijednosti; 10 i 14. Također, objasnite i napišite kod za izvođenje u C++.

Riješenje: Razmotrimo dvije varijable, 'a' i 'b', da pohranimo odgovarajuća dva operanda dana u gornjem pitanju, tj. 10 i 14.

Ovdje je a = 10 i b = 14.

Slijedit ćemo korake u nastavku kako bismo saznali isključivi OR za navedena dva operanda.

  1. Znamo da su 10 i 14 u decimalnom obliku, a za primjenu bitne XOR operacije potrebno ga je pretvoriti u binarni oblik.
  2. Binarni oblik 'a', tj. 10 je '1010' i binarni oblik 'b', tj. 14 je '1110'.
  3. Ovdje opažamo da je broj binarnih znamenki prisutnih u a četiri i da je broj binarnih znamenki prisutnih u b također 4; stoga je broj binarnih znamenki prisutnih u obje varijable isti i već uravnotežen, ne trebamo dodati više nula da bismo to uravnotežili.
  4. Sada, stavljajući binarne znamenke prisutne u 'b' na binarne znamenke prisutne u 'a'.
  5. Konačno, primjena operacije XOR jedan po jedan na odgovarajuće bitove odgovara i zabilježite izlaz.
  6. Napokon generirani izlaz bit će u binarnom obliku, kao što je gornje pitanje dano u decimalnom obliku, tako da moramo pretvoriti rezultat u decimalni oblik.

Obrazloženje:

a = 10 (u decimalnom obliku)

b = 14 (u decimalnom obliku)

Sada, za XOR b, moramo pretvoriti a i b u binarni oblik -

a = 1010 (u binarnom obliku)

b = 1110 (u binarnom obliku)

Sada, primjenom XOR operacije na a i b -

a = 1010

b = 1110

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

nije jednako mysql

a ^ b = 0100 (U binarnom obliku)

Rezultat a ^ b je 0100, što je u binarnom obliku.

Sada pretvaramo rezultat u decimalni oblik, što je 4.

10^14 = 4

NAPOMENA: Korištenjem gornje XOR tablice istine, generira se izlaz odgovarajućih bitova.

Sada ćemo primijeniti operaciju XOR po bitovima na 10 i 14 u jeziku C++ i dobiti rezultat, tj. 4.

C++ kod za gornji primjer:

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

Izlaz

C++ Bitwise XOR operator

Primjer 2: Pronađite isključivi OR cjelobrojnih vrijednosti; 3 i 15. Također, objasnite i napišite kod za izvođenje u C++.

Riješenje: Razmotrimo dvije varijable, 'a' i 'b', da pohranimo odgovarajuća dva operanda dana u gornjem pitanju, tj. 3 i 15.

Ovdje je a = 3 i b = 15.

Slijedit ćemo korake u nastavku kako bismo saznali isključivi OR za navedena dva operanda.

  1. Znamo da su 3 i 15 u decimalnom obliku, a za primjenu bitne XOR operacije potrebno ga je pretvoriti u binarni oblik.
  2. Binarni oblik 'a', tj. 3 je 'jedanaest' i binarni oblik 'b', tj. 15 je '1111'.
  3. Ovdje ćemo uočiti da je broj binarnih znamenki prisutnih u a dva, a broj binarnih znamenki prisutnih u b četiri; stoga broj binarnih znamenki prisutnih u obje varijable nije isti. Dakle, neuravnoteženi, trebamo dodati više nula na lijevoj strani nižeg binarnog broja, tj. a, što je ' jedanaest' , uravnotežiti ga.
  4. Nakon balansiranja, vrijednost a je '0011' , a b je '1111'.
  5. Sada, stavljajući binarne znamenke prisutne u 'b' na binarne znamenke prisutne u 'a'.
  6. Konačno, primjena operacije XOR jedan po jedan na odgovarajuće bitove odgovara i zabilježite izlaz.
  7. Napokon generirani izlaz bit će u binarnom obliku, kao što je gornje pitanje dano u decimalnom obliku, tako da moramo pretvoriti rezultat u decimalni oblik.

Obrazloženje:

a = 3 (u decimalnom obliku)

b = 15 (u decimalnom obliku)

Sada, za XOR b, moramo pretvoriti a i b u binarni oblik -

a = 0011 (u binarnom obliku)

ti si spoj

b = 1111 (u binarnom obliku)

Sada, primjenom XOR operacije na a i b -

a = 0011

b = 1111

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

a ^ b = 1100 (U binarnom obliku)

Rezultat a ^ b je 1100, što je u binarnom obliku.

Sada pretvaramo rezultat u decimalni oblik, što je 12.

3^15 = 12

NAPOMENA: Korištenjem gornje XOR tablice istine, generira se izlaz odgovarajućih bitova.

Sada ćemo primijeniti operaciju XOR po bitovima na 3 i 15 u C++ jeziku i dobiti rezultat, tj. 12.

C++ kod za gornji primjer:

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

Izlaz

C++ Bitwise XOR operator