- Bitni operator XOR je znan tudi kot Ekskluzivni OR
- Označuje se z uporabo '^'
- Kot že ime pove, deluje na bitna raven operandov.
- Bitni operator XOR spada v kategorijo bitnih operatorjev.
- Pri bitnem izključnem operatorju ALI (XOR) sta potrebna dva operanda, ki sta ločena s simbolom XOR, tj. '^'.
- Za določitev izhoda ali rezultata, ki se prikaže po uporabi operatorja XOR na dveh operandih, moramo slediti tabeli logičnih resnic operatorja XOR.
- Resnična tabela XOR je matematična tabela, izdelana z uporabo ustrezne logike operatorja XOR.
- Logika, uporabljena za operatorjem XOR, je; vsakič, ko je na obeh uporabljena operacija XOR drugačen bitov dveh operandov, potem bo rezultat vedno proizveden '1', in če je operacija XOR uporabljena na obeh enako bitov dveh operandov, potem rezultat proizvede izhod '0'.
Tabela resničnosti operatorja izključnega ALI (XOR).
Naj obstajata dva operanda; prvi je A in drugi je B, skupne kombinacije vnosa, ki jih tvorita ta dva operanda, bodo 4. Z uporabo naslednje tabele resnic XOR bomo določili ustrezen izhod. Rezultat bo tukaj zajet v C C = A ^ B.
V tej tabeli resničnosti sprejemamo vhodne podatke v obliki bitov, tj. 0 in 1, izhod pa bo prav tako ustvarjen v obliki bitov, tj. 0 in 1.
Tukaj, v zgornji tabeli resnic XOR, opazimo, da ko sta vrednosti operandov A in B različni, tj. (0, 1), (1, 0), bo rezultat vedno 1. In ko če sta vrednosti operandov A in B enaki, tj. ( 0, 0 ), ( 1, 1 ), bo rezultat, ki izide, vedno 0.
Podobno lahko na ta način narišemo tabelo resnic za Boolean vrednote -
Naj obstajata dva operanda; prvi je A in drugi je B . Skupne kombinacije vnosa, ki jih tvorita ta dva operanda, bodo 4. Z uporabo naslednje tabele resnic XOR bomo določili ustrezen izhod. Rezultat bo zajet v C, tukaj C = A ^ B.
V tej resnični tabeli sprejemamo vnose v obliki resničnih vrednosti, tj. True (T) in False (F). Izhod bo ustvarjen tudi v obliki resničnih vrednosti, tj. T in F.
Tukaj, v zgornji tabeli resnic XOR, opazimo, da bo rezultat vedno T, ko sta vrednosti operandov A in B različni, tj. (F, T), (T, F). vrednosti operandov A in B enake, tj. (F, F), (T, T), rezultat bo vedno F.
Iz zgornjih tabel to opazimo T ( True ) je označen z enico, F ( False ) pa z 0.
Koraki za rešitev kakršne koli težave -
- Operandi, podani v nalogi, bodo vedno v decimalni vrednosti.
- Najprej moramo pretvoriti vrednosti operandov v dvojiško
- Po pretvorbi vrednosti operandov v binarna števila postavite oba operanda enega čez drugega.
- Ne pozabite, da preden na njih uporabite operacijo izključnega ALI (XOR), preverite število števk v njih.
- Če se število števk ne ujema, dodatne 0 na levem koncu malega operanda izravnajo število števk.
- Na koncu s pomočjo zgornje tabele resnic uporabite operacijo XOR na operandih enega za drugim, pri čemer jemljite en bit naenkrat za uporabo operacije XOR.
- Končno je rezultat proizveden v obliki izhoda.
- Proizveden izhod bo v binarni obliki, zdaj pretvorite binarno obliko v decimalno obliko in zabeležite vrednost rezultata.
Izvajanje operacije bitnega izključnega ALI (XOR) v C++
Razumejmo podrobneje o izvajanju operacije XOR v C++ s pomočjo primerov -
Primer 1: Poiščite izključni ALI celih vrednosti; 10 in 14. Razložite ga tudi in napišite kodo izvajanja v C++.
rešitev: Vzemimo dve spremenljivki, 'a' in 'b', da shranimo ustrezna dva operanda, podana v zgornjem vprašanju, tj. 10 in 14.
Tu je a = 10 in b = 14.
Sledili bomo spodnjim korakom, da ugotovimo izključni ALI danih dveh operandov.
- Vemo, da sta 10 in 14 v decimalni obliki in za uporabo bitne operacije XOR jo je treba pretvoriti v dvojiško obliko.
- Dvojiška oblika 'a', tj. 10 je '1010' in dvojiška oblika 'b', tj. 14 je '1110'.
- Tukaj opazimo, da je število binarnih števk, prisotnih v a, štiri in število binarnih števk, prisotnih v b, je prav tako 4; zato je število binarnih števk, prisotnih v obeh spremenljivkah, enako in že uravnoteženo, zato nam ni treba dodati več ničel, da bi ga uravnotežili.
- Zdaj binarne števke, ki so prisotne v 'b', zložimo na binarne števke, ki so prisotne v 'a'.
- Končno uporabite operacijo XOR enega za drugim na ustreznih bitih, ki se ujemajo in si zabeležite izhod.
- Končno ustvarjeni izhod bo v binarni obliki, kot je zgornje vprašanje podano v decimalni obliki, zato moramo rezultat pretvoriti v decimalno obliko.
Pojasnilo:
a = 10 (v decimalni obliki)
b = 14 (v decimalni obliki)
Zdaj, za XOR b, moramo pretvoriti a in b v dvojiško obliko -
a = 1010 (v binarni obliki)
b = 1110 (v binarni obliki)
Zdaj, uporaba operacije XOR na a in b -
a = 1010
b = 1110
---------------
a ^ b = 0100 (V binarni obliki)
Rezultat a ^ b je 0100, ki je v binarni obliki.
: v Javi
Zdaj pretvorite rezultat v decimalno obliko, ki je 4.
10^14 = 4
OPOMBA: Z uporabo zgornje tabele resnic XOR se generirajo izhodi ustreznih bitov.
Zdaj bomo uporabili operacijo bitnega XOR na 10 in 14 v jeziku C++ in dobili rezultat, tj. 4.
Koda C++ za zgornji primer:
//************************ 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 } </'>
Izhod
Primer 2: Poiščite izključni ALI celih vrednosti; 3 in 15. Razložite ga tudi in napišite kodo izvajanja v C++.
rešitev: Vzemimo dve spremenljivki, 'a' in 'b', da shranimo ustrezna dva operanda, podana v zgornjem vprašanju, tj. 3 in 15.
Tu je a = 3 in b = 15.
Sledili bomo spodnjim korakom, da ugotovimo izključni ALI danih dveh operandov.
- Vemo, da sta 3 in 15 v decimalni obliki in za uporabo bitne operacije XOR jo je treba pretvoriti v dvojiško obliko.
- Dvojiška oblika 'a', tj. 3 je 'enajst' in dvojiška oblika 'b', tj. 15 je '1111'.
- Tukaj bomo opazili, da je število binarnih števk, prisotnih v a, dve in število binarnih števk, prisotnih v b, štiri; zato število binarnih števk v obeh spremenljivkah ni enako. Tako moramo, neuravnoteženi, dodati več ničel na levi strani spodnjega binarnega števila, tj. a, ki je ' enajst' , da ga uravnotežimo.
- Po izravnavi je vrednost a '0011' , in b je '1111'.
- Zdaj binarne števke, ki so prisotne v 'b', zložimo na binarne števke, ki so prisotne v 'a'.
- Končno uporabite operacijo XOR enega za drugim na ustreznih bitih, ki se ujemajo in si zabeležite izhod.
- Končno ustvarjeni izhod bo v binarni obliki, kot je zgornje vprašanje podano v decimalni obliki, zato moramo rezultat pretvoriti v decimalno obliko.
Pojasnilo:
a = 3 (v decimalni obliki)
b = 15 (v decimalni obliki)
Zdaj, za XOR b, moramo pretvoriti a in b v dvojiško obliko -
a = 0011 (v binarni obliki)
b = 1111 (v binarni obliki)
Zdaj, uporaba operacije XOR na a in b -
oblazinjenje css
a = 0011
b = 1111
---------------
a ^ b = 1100 (V binarni obliki)
Rezultat a ^ b je 1100, kar je v binarni obliki.
Zdaj pretvorite rezultat v decimalno obliko, ki je 12.
3^15 = 12
OPOMBA: Z uporabo zgornje tabele resnic XOR se generirajo izhodi ustreznih bitov.
Zdaj bomo uporabili operacijo bitnega XOR na 3 in 15 v jeziku C++ in dobili rezultat, tj. 12.
Koda C++ za zgornji primer:
//************************ 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 } </'>
Izhod