logo

Operator C++ XOR pe biți

  • Operatorul XOR pe biți este cunoscut și ca Exclusiv sau
  • Se notează prin folosirea '^'
  • După cum arată numele, funcționează pe nivel de biți a operanzilor.
  • Operatorul XOR pe biți a intrat în categoria operatorilor pe biți.
  • În operatorul OR exclusiv pe biți (XOR), sunt necesari doi operanzi, iar acești doi operanzi sunt separați de simbolul XOR, adică „^”.
  • Pentru a determina ieșirea sau rezultatul care iese după aplicarea operatorului XOR pe doi operanzi, trebuie să urmărim tabelul de adevăr logic al operatorului XOR.
  • XOR Truth Table este tabelul matematic construit folosind logica adecvată a operatorului XOR.
  • Logica folosită în spatele operatorului XOR este; ori de câte ori operația XOR este aplicată pe cele două diferit biți din doi operanzi, atunci rezultatul va produce întotdeauna „1”, iar dacă pe cele două se aplică operaţia XOR la fel biți ai doi operanzi, apoi rezultatul produce rezultate „0”.

Tabelul de adevăr al operatorului SAU exclusiv (XOR).

Fie că există doi operanzi; Primul este A și al doilea este B, combinațiile totale de intrare formate din acești doi operanzi vor fi 4. Utilizând următorul tabel de adevăr XOR, vom determina ieșirea corespunzătoare. Rezultatul va fi capturat în C, aici C = A ^ B.

În acest tabel de adevăr, luăm intrarea sub formă de biți, adică 0 și 1, iar ieșirea va fi, de asemenea, generată sub formă de biți, adică 0 și 1.

Operator C++ XOR pe biți

Aici, în tabelul de adevăr XOR de mai sus, observăm că atunci când valorile operanzilor A și B sunt diferite, adică ( 0, 1 ), ( 1, 0 ), rezultatul care iese va fi întotdeauna 1. Și când valorile operanzilor A și B sunt aceleași, adică ( 0, 0 ), ( 1, 1 ), rezultatul care iese va fi întotdeauna 0.

În mod similar, în acest fel, putem trage tabelul de adevăr pentru boolean valori -

Fie că există doi operanzi; Primul este A iar al doilea este B . Combinațiile totale de intrare formate din acești doi operanzi vor fi 4. Utilizând următorul tabel de adevăr XOR, vom determina ieșirea corespunzătoare. Rezultatul va fi capturat în C, aici C = A ^ B.

În acest tabel de adevăr, luăm intrare sub formă de valori de adevăr, adică Adevărat (T) și Fals (F). Ieșirea va fi, de asemenea, generată sub formă de valori adevărate, adică T și F.

Operator C++ XOR pe biți

Aici, în tabelul de adevăr XOR de mai sus, observăm că, atunci când valorile operanzilor A și B sunt diferite, adică ( F, T ), ( T, F ), rezultatul va fi întotdeauna T. Și când valorile operanzilor A și B sunt aceleași, adică ( F, F ), ( T, T ), rezultatul va fi întotdeauna F.

Din tabelele de mai sus, observăm că T ( Adevărat ) este notat cu unu și F ( Fals ) este notat cu 0.

Pași pentru a rezolva orice problemă dată -

  1. Operanzii dați în problemă vor fi întotdeauna în valoare zecimală.
  2. În primul rând, trebuie să convertim valorile operanzilor în binar
  3. După conversia valorilor operanzilor în numere binare, puneți ambii operanzi unul peste altul.
  4. Amintiți-vă că înainte de a aplica operația SAU exclusivă (XOR) asupra acestora, vă rugăm să verificați numărul de cifre în ele.
  5. Dacă numărul de cifre nu se potrivește, 0-urile suplimentare de la capătul din stânga operandului mic echilibrează numărul de cifre.
  6. În cele din urmă, cu ajutorul tabelului de adevăr de mai sus, aplicați operația XOR pe operanzi unul câte unul, luând câte un bit pentru aplicarea operației XOR.
  7. În cele din urmă, rezultatul este produs sub formă de ieșire.
  8. Ieșirea este produsă va fi în formă binară, acum convertiți forma binară în formă zecimală și notați valoarea rezultatului.

Executarea operațiunii Bitwise Exclusive OR (XOR) în C++

Să înțelegem mai detaliat despre execuția operației XOR în C++ cu ajutorul exemplelor -

Exemplul 1: Găsiți SAU exclusiv al valorilor întregi; 10 și 14. De asemenea, explicați-l și scrieți codul de execuție în C++.

Soluţie: Să luăm în considerare două variabile, 'a' și 'b', pentru a stoca cei doi operanzi corespunzători din întrebarea de mai sus, adică 10 și 14.

list nodul în java

Aici, a = 10 și b = 14.

Vom urma pașii de mai jos pentru a afla SAU exclusiv al celor doi operanzi dați.

  1. Știm că 10 și 14 sunt în formă zecimală, iar pentru aplicarea operației XOR pe biți, este necesar să le convertim în formă binară.
  2. Forma binară „a”, adică 10 este '1010' și forma binară a lui „b”, adică 14 este „1110”.
  3. Aici observăm că numărul cifrelor binare prezente în a este de patru și numărul cifrelor binare prezente în b este tot 4; prin urmare, numărul de cifre binare prezente în ambele variabile este același și deja echilibrat, nu este nevoie să adăugăm mai multe 0 pentru a-l echilibra.
  4. Acum, punând cifrele binare prezente în „b” până la cifrele binare prezente în „a”.
  5. În cele din urmă, aplicarea operației XOR unul câte unul pe biții corespunzători se potrivește și notează rezultatul.
  6. Ieșirea generată în cele din urmă va fi în formă binară, așa cum întrebarea de mai sus este dată în formă zecimală, așa că trebuie să convertim rezultatul în formă zecimală.

Explicaţie:

medie vs medie

a = 10 (în formă zecimală)

b = 14 (în formă zecimală)

Acum, pentru un XOR b, trebuie să convertim a și b în formă binară -

a = 1010 (în formă binară)

b = 1110 (În formă binară)

Acum, aplicând operația XOR pe a și b -

a = 1010

b = 1110

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

a ^ b = 0100 (În formă binară)

Rezultatul a ^ b este 0100, care este în formă binară.

Acum convertiți rezultatul în formă zecimală, care este 4.

10^14 = 4

NOTĂ: Prin utilizarea tabelului de adevăr XOR de mai sus, sunt generate ieșirea biților corespunzători.

Acum vom aplica operația XOR pe biți pe 10 și 14 în limbajul C++ și vom obține rezultatul, adică 4.

Cod C++ pentru exemplul de mai sus:

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

Ieșire

sistem de operare în rețea
Operator C++ XOR pe biți

Exemplul 2: Găsiți SAU exclusiv al valorilor întregi; 3 și 15. De asemenea, explicați-l și scrieți codul de execuție în C++.

Soluţie: Să luăm în considerare două variabile, 'a' și 'b', pentru a stoca cei doi operanzi corespunzători din întrebarea de mai sus, adică 3 și 15.

Aici, a = 3 și b = 15.

Vom urma pașii de mai jos pentru a afla SAU exclusiv al celor doi operanzi dați.

  1. Știm că 3 și 15 sunt în formă zecimală, iar pentru aplicarea operației XOR pe biți, este necesar să o convertim în formă binară.
  2. Forma binară „a”, adică 3 este 'unsprezece' și forma binară a lui „b”, adică 15 este „1111”.
  3. Aici vom observa că numărul cifrelor binare prezente în a este două, iar numărul cifrelor binare prezente în b este patru; prin urmare, numărul de cifre binare prezente în ambele variabile nu este același. Astfel, dezechilibrat, trebuie să adăugăm mai multe 0 în partea stângă a numărului binar inferior, adică a, care este „ unsprezece' , pentru a-l echilibra.
  4. După echilibrare, valoarea lui a este '0011' , iar b este „1111”.
  5. Acum, punând cifrele binare prezente în „b” până la cifrele binare prezente în „a”.
  6. În cele din urmă, aplicarea operației XOR unul câte unul pe biții corespunzători se potrivește și notează rezultatul.
  7. Ieșirea generată în cele din urmă va fi în formă binară, așa cum întrebarea de mai sus este dată în formă zecimală, așa că trebuie să convertim rezultatul în formă zecimală.

Explicaţie:

a = 3 (în formă zecimală)

b = 15 (în formă zecimală)

Acum, pentru un XOR b, trebuie să convertim a și b în formă binară -

a = 0011 (În formă binară)

b = 1111 (În formă binară)

Acum, aplicând operația XOR pe a și b -

comanda arp-a

a = 0011

b = 1111

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

a ^ b = 1100 (În formă binară)

Rezultatul a ^ b este 1100, care este în formă binară.

Acum convertiți rezultatul în formă zecimală, care este 12.

3^15 = 12

NOTĂ: Prin utilizarea tabelului de adevăr XOR de mai sus, sunt generate ieșirea biților corespunzători.

Acum vom aplica operația XOR pe biți pe 3 și 15 în limbajul C++ și vom obține rezultatul, adică 12.

Cod C++ pentru exemplul de mai sus:

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

Ieșire

Operator C++ XOR pe biți