- 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.
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.
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 -
- Operandi dani u problemu uvijek će biti u decimalnoj vrijednosti.
- Prvo moramo pretvoriti vrijednosti operanda u binarni
- Nakon pretvaranja vrijednosti operanda u binarne brojeve, stavite oba operanda jedan preko drugog.
- Imajte na umu da prije primjene operacije isključivog ILI (XOR) na njih provjerite broj znamenki u njima.
- Ako se broj znamenki ne podudara, dodatne 0 na lijevom kraju malog operanda uravnotežuju broj znamenki.
- Na kraju, uz pomoć gornje tablice istine, primijenite operaciju XOR na operande jedan po jedan, uzimajući jedan po bit za primjenu operacije XOR.
- Na kraju, rezultat se proizvodi u obliku izlaza.
- 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.
- Znamo da su 10 i 14 u decimalnom obliku, a za primjenu bitne XOR operacije potrebno ga je pretvoriti u binarni oblik.
- Binarni oblik 'a', tj. 10 je '1010' i binarni oblik 'b', tj. 14 je '1110'.
- 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.
- Sada, stavljajući binarne znamenke prisutne u 'b' na binarne znamenke prisutne u 'a'.
- Konačno, primjena operacije XOR jedan po jedan na odgovarajuće bitove odgovara i zabilježite izlaz.
- 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 <> 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 } </'>
Izlaz
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.
- Znamo da su 3 i 15 u decimalnom obliku, a za primjenu bitne XOR operacije potrebno ga je pretvoriti u binarni oblik.
- Binarni oblik 'a', tj. 3 je 'jedanaest' i binarni oblik 'b', tj. 15 je '1111'.
- 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.
- Nakon balansiranja, vrijednost a je '0011' , a b je '1111'.
- Sada, stavljajući binarne znamenke prisutne u 'b' na binarne znamenke prisutne u 'a'.
- Konačno, primjena operacije XOR jedan po jedan na odgovarajuće bitove odgovara i zabilježite izlaz.
- 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 <> 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 } </'>
Izlaz