- Bitový operátor XOR je tiež známy ako Exkluzívne OR
- Označuje sa pomocou '^'
- Ako už názov napovedá, funguje na bitová úroveň z operandov.
- Operátor Bitwise XOR patrí do kategórie bitových operátorov.
- V bitovom exkluzívnom operátore OR (XOR) sú potrebné dva operandy a tieto dva operandy sú oddelené symbolom XOR, t. j. '^'.
- Na určenie výstupu alebo výsledku, ktorý vyjde po aplikácii operátora XOR na dva operandy, sa musíme riadiť tabuľkou logickej pravdy operátora XOR.
- XOR Truth Table je matematická tabuľka vytvorená pomocou správnej logiky operátora XOR.
- Logika použitá za operátorom XOR je; vždy, keď sa na dvoch použije operácia XOR rôzne bitov dvoch operandov, potom výsledok vždy vytvorí '1', a ak sa operácia XOR aplikuje na dva rovnaký bitov dvoch operandov, potom výsledok vytvorí výstup '0'.
Pravdivá tabuľka exkluzívneho operátora OR (XOR).
Nech existujú dva operandy; Prvý je A a druhý B, celkové kombinácie vstupov tvorené týmito dvoma operandmi budú 4. Pomocou nasledujúcej pravdivostnej tabuľky XOR určíme zodpovedajúci výstup. Výsledok bude zachytený v C tu C = A ^ B.
V tejto pravdivostnej tabuľke berieme vstup vo forme bitov, tj 0 a 1, a výstup bude tiež generovaný vo forme bitov, tj 0 a 1.
Tu, vo vyššie uvedenej tabuľke pravdy XOR, pozorujeme, že keď sú hodnoty operandov A a B rôzne, t.j. ( 0, 1 ), ( 1, 0 ), výsledok, ktorý vyjde, bude vždy 1. A keď hodnoty operandov A a B sú rovnaké, t.j. ( 0, 0 ), ( 1, 1 ), výsledok, ktorý vyjde, bude vždy 0.
Podobne týmto spôsobom môžeme nakresliť pravdivostnú tabuľku pre Boolean hodnoty -
linux spustiť cmd
Nech existujú dva operandy; ten prvý je A a ten druhý je B . Celkové kombinácie vstupu tvorené týmito dvoma operandmi budú 4. Pomocou nasledujúcej pravdivostnej tabuľky XOR určíme zodpovedajúci výstup. Výsledok bude zachytený v C, tu C = A ^ B.
V tejto tabuľke pravdy berieme vstup vo forme hodnôt pravdy, t. j. Pravda (T) a Nepravda (F). Výstup bude tiež generovaný vo forme skutočných hodnôt, t.j. T a F.
Tu, vo vyššie uvedenej tabuľke pravdy XOR, pozorujeme, že keď sú hodnoty operandov A a B rozdielne, t.j. (F, T), (T, F), výsledkom bude vždy T. hodnoty operandov A a B sú rovnaké, t.j. ( F, F ), ( T, T ), výsledok bude vždy F.
Z vyššie uvedených tabuliek to vidíme T (pravda) je označené jednotkou a F (nepravda) je označené 0.
Kroky na vyriešenie daného problému -
- Operandy uvedené v probléme budú vždy v desiatkovej hodnote.
- Najprv musíme previesť hodnoty operandov na binárne
- Po prevode hodnôt operandov na binárne čísla umiestnite oba operandy jeden cez druhý.
- Pamätajte, že predtým, ako na ne použijete operáciu exkluzívneho OR (XOR), láskavo skontrolujte počet číslic v nich.
- Ak sa počet číslic nezhoduje, nuly navyše na ľavom konci malého operandu vyvážia počty číslic.
- Nakoniec s pomocou vyššie uvedenej pravdivostnej tabuľky aplikujte operáciu XOR na operandy jeden po druhom, pričom na aplikáciu operácie XOR berte jeden bit po druhom.
- Nakoniec sa výsledok vytvorí vo forme výstupu.
- Produkovaný výstup bude v binárnej forme, teraz preveďte binárnu formu do desiatkovej formy a zapíšte si výslednú hodnotu.
Vykonanie operácie Bitwise Exclusive OR (XOR) v C++
Pozrime sa podrobnejšie na vykonávanie operácie XOR v C++ pomocou príkladov -
Príklad 1: Nájdite exkluzívne ALEBO celočíselných hodnôt; 10 a 14. Tiež to vysvetlite a napíšte kód vykonania v C++.
Riešenie: Uvažujme dve premenné „a“ a „b“ na uloženie zodpovedajúcich dvoch operandov uvedených vo vyššie uvedenej otázke, t. j. 10 a 14.
Tu je a = 10 a b = 14.
Budeme postupovať podľa nižšie uvedených krokov, aby sme zistili výhradné OR daných dvoch operandov.
- Vieme, že 10 a 14 sú v desiatkovom tvare a pre aplikáciu bitovej operácie XOR je potrebné ich previesť do binárneho tvaru.
- Binárna forma 'a', t.j. 10 je '1010' a binárna forma 'b', t.j. 14 je '1110'.
- Tu pozorujeme, že počet binárnych číslic prítomných v a je štyri a počet binárnych číslic prítomných v b je tiež 4; preto je počet binárnych číslic prítomných v oboch premenných rovnaký a už vyvážený, na vyrovnanie nemusíme pridávať ďalšie čísla 0.
- Teraz položte binárne číslice prítomné v 'b' nadol na binárne číslice prítomné v 'a'.
- Nakoniec použite operáciu XOR jeden po druhom na zodpovedajúce bity a zapíšte si výstup.
- Vygenerovaný výstup bude nakoniec v binárnej forme, ako je uvedená vyššie uvedená otázka v desiatkovej forme, takže musíme výsledok previesť v desiatkovej forme.
Vysvetlenie:
a = 10 ( v desiatkovom tvare )
b = 14 ( v desiatkovom tvare )
Teraz, pre XOR b, musíme previesť a a b v binárnej forme -
a = 1010 (v binárnej forme)
b = 1110 (v binárnej forme)
Teraz použite operáciu XOR na a a b -
prepojený zoznam java
a = 1010
b = 1110
----------------
a ^ b = 0100 (V binárnej forme)
Výsledkom a ^ b je 0100, čo je v binárnom tvare.
Teraz konvertujeme výsledok v desiatkovej forme, čo je 4.
10^14 = 4
POZNÁMKA: Použitím vyššie uvedenej pravdivostnej tabuľky XOR sa generuje výstup zodpovedajúcich bitov.
Teraz použijeme bitovú operáciu XOR na 10 a 14 v jazyku C++ a dostaneme výsledok, t.j. 4.
C++ kód pre vyššie uvedený príklad:
//************************ 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 } </'>
Výkon
Príklad 2: Nájdite výhradné ALEBO celočíselných hodnôt; 3 a 15. Tiež to vysvetlite a napíšte kód vykonania v C++.
Riešenie: Uvažujme dve premenné „a“ a „b“ na uloženie zodpovedajúcich dvoch operandov uvedených vo vyššie uvedenej otázke, t. j. 3 a 15.
Tu je a = 3 a b = 15.
Budeme postupovať podľa nižšie uvedených krokov, aby sme zistili výhradné OR daných dvoch operandov.
- Vieme, že 3 a 15 sú v desiatkovom tvare a pre aplikáciu bitovej operácie XOR je potrebné ich previesť do binárneho tvaru.
- Binárna forma 'a', t.j. 3 je 'jedenásť' a binárna forma 'b', t.j. 15 je '1111'.
- Tu uvidíme, že počet binárnych číslic prítomných v a je dva a počet binárnych číslic prítomných v b je štyri; preto počet binárnych číslic prítomných v oboch premenných nie je rovnaký. Preto, nevyvážení, potrebujeme pridať viac nul na ľavej strane nižšieho binárneho čísla, t.j. a, čo je ' jedenásť' , aby som to vyvážil.
- Po vyrovnaní je hodnota a '0011' a b je '1111'.
- Teraz položte binárne číslice prítomné v 'b' nadol na binárne číslice prítomné v 'a'.
- Nakoniec použite operáciu XOR jeden po druhom na zodpovedajúce bity a zapíšte si výstup.
- Vygenerovaný výstup bude nakoniec v binárnej forme, ako je uvedená vyššie uvedená otázka v desiatkovej forme, takže musíme výsledok previesť v desiatkovej forme.
Vysvetlenie:
a = 3 ( v desiatkovom tvare )
b = 15 ( v desiatkovom tvare )
zobraziť skryté aplikácie
Teraz, pre XOR b, musíme previesť a a b v binárnej forme -
a = 0011 (v binárnej forme)
b = 1111 (v binárnej forme)
Teraz použite operáciu XOR na a a b -
java int v reťazci
a = 0011
b = 1111
----------------
a ^ b = 1100 (V binárnej forme)
Výsledkom a ^ b je 1100, čo je v binárnom tvare.
Teraz konvertujeme výsledok v desiatkovej forme, čo je 12.
3^15 = 12
POZNÁMKA: Použitím vyššie uvedenej pravdivostnej tabuľky XOR sa generuje výstup zodpovedajúcich bitov.
Teraz použijeme bitovú operáciu XOR na 3 a 15 v jazyku C++ a dostaneme výsledok, t.j. 12.
C++ kód pre vyššie uvedený príklad:
//************************ 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 } </'>
Výkon