logo

Operátor bitového XOR C++

  • 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.

Operátor bitového XOR C++

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.

Operátor bitového XOR C++

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 -

  1. Operandy uvedené v probléme budú vždy v desiatkovej hodnote.
  2. Najprv musíme previesť hodnoty operandov na binárne
  3. Po prevode hodnôt operandov na binárne čísla umiestnite oba operandy jeden cez druhý.
  4. Pamätajte, že predtým, ako na ne použijete operáciu exkluzívneho OR (XOR), láskavo skontrolujte počet číslic v nich.
  5. Ak sa počet číslic nezhoduje, nuly navyše na ľavom konci malého operandu vyvážia počty číslic.
  6. 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.
  7. Nakoniec sa výsledok vytvorí vo forme výstupu.
  8. 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.

  1. 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.
  2. Binárna forma 'a', t.j. 10 je '1010' a binárna forma 'b', t.j. 14 je '1110'.
  3. 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.
  4. Teraz položte binárne číslice prítomné v 'b' nadol na binárne číslice prítomné v 'a'.
  5. Nakoniec použite operáciu XOR jeden po druhom na zodpovedajúce bity a zapíšte si výstup.
  6. 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 &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 } </'>

Výkon

Operátor bitového XOR C++

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.

  1. 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.
  2. Binárna forma 'a', t.j. 3 je 'jedenásť' a binárna forma 'b', t.j. 15 je '1111'.
  3. 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.
  4. Po vyrovnaní je hodnota a '0011' a b je '1111'.
  5. Teraz položte binárne číslice prítomné v 'b' nadol na binárne číslice prítomné v 'a'.
  6. Nakoniec použite operáciu XOR jeden po druhom na zodpovedajúce bity a zapíšte si výstup.
  7. 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 &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 } </'>

Výkon

C++ bitový operátor XOR