logo

C++ operador XOR bit a bit

  • L'operador XOR per bits també es coneix com OR exclusiu
  • Es denota utilitzant el '^'
  • Com el seu nom indica, funciona a la nivell de bits dels operands.
  • L'operador XOR bit a bit ha arribat a la categoria d'operadors bit a bit.
  • A l'operador OR exclusiu per bits (XOR), es requereixen dos operands, i aquests dos operands estan separats pel símbol XOR, és a dir, '^'.
  • Per determinar la sortida o el resultat que surt després d'aplicar l'operador XOR a dos operands, hem de seguir la taula de veritat lògica de l'operador XOR.
  • XOR Truth Table és la taula matemàtica construïda utilitzant la lògica adequada de l'operador XOR.
  • La lògica utilitzada darrere de l'operador XOR és; sempre que s'apliqui l'operació XOR als dos diferents bits de dos operands, el resultat sempre es produirà '1', i si l'operació XOR s'aplica als dos mateix bits de dos operands, llavors el resultat produeix una sortida '0'.

Taula de veritat de l'operador OR exclusiu (XOR).

Sigui dos operands; el primer és A i el segon és B, les combinacions totals d'entrada formades per aquests dos operands seran 4. Utilitzant la següent taula de veritat XOR, determinarem la sortida corresponent. El resultat es capturarà en C, aquí C = A ^ B.

En aquesta taula de veritat, estem prenent entrada en forma de bits, és a dir, 0 i 1, i la sortida també es generarà en forma de bits, és a dir, 0 i 1.

C++ operador XOR bit a bit

Aquí, a la taula de veritat XOR anterior, observem que quan els valors dels operands A i B són diferents, és a dir, ( 0, 1 ), ( 1, 0 ), el resultat que surt sempre serà 1. I quan el els valors dels operands A i B són els mateixos, és a dir, ( 0, 0 ), ( 1, 1 ), el resultat que surt sempre serà 0.

De la mateixa manera, d'aquesta manera, podem dibuixar la taula de veritat booleà valors -

Sigui dos operands; el primer és A i el segon és B . Les combinacions totals d'entrada formades per aquests dos operands seran 4. Utilitzant la següent taula de veritat XOR, determinarem la sortida corresponent. El resultat es capturarà en C, aquí C = A ^ B.

En aquesta taula de veritat, estem prenent entrada en forma de valors de veritat, és a dir, Vertader (T) i Fals (F). La sortida també es generarà en forma de valors vertaders, és a dir, T i F.

C++ operador XOR bit a bit

Aquí, a la taula de veritat XOR anterior, observem que, quan els valors dels operands A i B són diferents, és a dir, ( F, T ), ( T, F ), el resultat sempre serà T. I quan el els valors dels operands A i B són iguals, és a dir, ( F, F ), ( T, T ), el resultat sempre serà F.

A partir de les taules anteriors ho observem T ( Vertader ) es denota amb un i F ( Fals ) es denota amb 0.

Passos per resoldre qualsevol problema:

  1. Els operands indicats al problema sempre estaran en el valor decimal.
  2. En primer lloc, hem de convertir els valors dels operands en binari
  3. Després de convertir els valors dels operands en nombres binaris, poseu els dos operands un sobre l'altre.
  4. Recordeu que abans d'aplicar-los l'operació OR exclusiva (XOR), comproveu-los nombre de dígits en ells.
  5. Si el recompte de dígits no coincideix, els 0 addicionals a l'extrem esquerre de l'operand petit equilibren el recompte de dígits.
  6. Finalment, amb l'ajuda de la taula de veritat anterior, apliqueu l'operació XOR als operands un per un, prenent un bit a la vegada per aplicar l'operació XOR.
  7. Finalment, el resultat es produeix en forma de sortida.
  8. La sortida que es produeix serà en forma binària, ara convertiu la forma binària en forma decimal i anoteu el valor del resultat.

Execució de l'operació Bitwise Exclusive OR (XOR) en C++

Anem a comprendre amb més detall sobre l'execució de l'operació XOR en C++ amb l'ajuda d'exemples:

Exemple 1: Trobeu l'OR exclusiu dels valors enters; 10 i 14. També explica-ho i escriu el codi d'execució en C++.

Solució: Considerem dues variables, 'a' i 'b', per emmagatzemar els dos operands corresponents donats a la pregunta anterior, és a dir, 10 i 14.

Aquí, a = 10 i b = 14.

Seguirem els passos següents per esbrinar l'OR exclusiu dels dos operands donats.

  1. Sabem que 10 i 14 estan en forma decimal, i per aplicar l'operació XOR per bits, cal convertir-lo en forma binària.
  2. Forma binària 'a', és a dir, 10 és ' 1010 ' i la forma binària de 'b', és a dir, 14 és '1110'.
  3. Aquí observem que el recompte de dígits binaris presents en a és quatre i el recompte de dígits binaris presents en b també és 4; per tant, el nombre de dígits binaris presents en ambdues variables és el mateix i ja està equilibrat, no cal afegir més nombre de 0 per equilibrar-lo.
  4. Ara, posant els dígits binaris presents a 'b' fins als dígits binaris presents a 'a'.
  5. Finalment, aplicant l'operació XOR un per un als bits corresponents coincideix i anota la sortida.
  6. La sortida generada per fi estarà en forma binària, com la pregunta anterior es dóna en forma decimal, de manera que hem de convertir el resultat en forma decimal.

Explicació:

a = 10 (En forma decimal)

b = 14 (En forma decimal)

Ara, per a un XOR b, hem de convertir a i b en forma binària -

a = 1010 (En forma binària)

b = 1110 (En forma binària)

Ara, aplicant l'operació XOR a a i b -

a = 1010

tutorial de swing de java

b = 1110

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

a ^ b = 0100 (En forma binària)

El resultat d'a ^ b és 0100, que està en forma binària.

Ara convertint el resultat en forma decimal, que és 4.

10 ^ 14 = 4

NOTA: En utilitzar la taula de veritat XOR anterior, es genera la sortida dels bits corresponents.

Ara aplicarem l'operació XOR per bits a 10 i 14 en llenguatge C++ i obtindrem el resultat, és a dir, 4.

Codi C++ per a l'exemple anterior:

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

Sortida

C++ operador XOR bit a bit

Exemple 2: Trobeu l'OR exclusiu dels valors enters; 3 i 15. També, explica-ho i escriu el codi d'execució en C++.

Solució: Considerem dues variables, 'a' i 'b', per emmagatzemar els dos operands corresponents donats a la pregunta anterior, és a dir, 3 i 15.

Aquí, a = 3 i b = 15.

Seguirem els passos següents per esbrinar l'OR exclusiu dels dos operands donats.

  1. Sabem que 3 i 15 estan en forma decimal, i per aplicar l'operació XOR per bits, cal convertir-lo en forma binària.
  2. Forma binària 'a', és a dir, 3 és '11' i la forma binària de 'b', és a dir, 15 és '1111'.
  3. Aquí observarem que el recompte de dígits binaris presents en a és dos i el recompte de dígits binaris presents en b és quatre; per tant, el nombre de dígits binaris presents en ambdues variables no és el mateix. Per tant, desequilibrats, hem d'afegir més nombre de 0 al costat esquerre del nombre binari inferior, és a dir, a, que és ' 11' , per equilibrar-lo.
  4. Després de l'equilibri, el valor de a és '0011' , i b és '1111'.
  5. Ara, posant els dígits binaris presents a 'b' fins als dígits binaris presents a 'a'.
  6. Finalment, aplicant l'operació XOR un per un als bits corresponents coincideix i anota la sortida.
  7. La sortida generada per fi estarà en forma binària, com la pregunta anterior es dóna en forma decimal, de manera que hem de convertir el resultat en forma decimal.

Explicació:

a = 3 (En forma decimal)

b = 15 (En forma decimal)

com esborrar la columna a postgresql

Ara, per a un XOR b, hem de convertir a i b en forma binària -

a = 0011 (En forma binària)

b = 1111 (En forma binària)

Ara, aplicant l'operació XOR a a i b -

a = 0011

b = 1111

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

a ^ b = 1100 (En forma binària)

El resultat d'a ^ b és 1100, que està en forma binària.

Ara convertint el resultat en forma decimal, que és 12.

3 ^ 15 = 12

NOTA: En utilitzar la taula de veritat XOR anterior, es genera la sortida dels bits corresponents.

Ara aplicarem l'operació XOR per bits a 3 i 15 en llenguatge C++ i obtindrem el resultat, és a dir, 12.

Codi C++ per a l'exemple anterior:

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

Sortida

C++ operador XOR bit a bit