logo

C++ Bitwise XOR-operaattori

  • Bitwise XOR-operaattori tunnetaan myös nimellä Yksinomainen TAI
  • Se on merkitty käyttämällä '^'
  • Kuten nimestä käy ilmi, se toimii bitin taso operandeista.
  • Bitwise XOR-operaattori on tullut Bitwise-operaattorien luokkaan.
  • Bittikohtaisessa poissulkevassa TAI-operaattorissa (XOR) tarvitaan kaksi operandia, ja nämä kaksi operandia erotetaan XOR-symbolilla, eli '^':lla.
  • Määrittääksemme lähdön tai tuloksen, joka tulee ulos XOR-operaattorin soveltamisen jälkeen kahdelle operandille, meidän on noudatettava XOR-operaattorin loogista totuustaulukkoa.
  • XOR Truth Table on matemaattinen taulukko, joka on rakennettu käyttämällä XOR-operaattorin oikeaa logiikkaa.
  • XOR-operaattorin takana käytetty logiikka on; aina kun XOR-toimintoa käytetään molemmissa eri kahden operandin bittiä, niin tulos tuottaa aina '1', ja jos XOR-operaatiota sovelletaan molempiin sama kahden operandin bittiä, niin tulos tuottaa ulostulon '0'.

Exclusive OR (XOR) -operaattorin totuustaulukko

Olkoon kaksi operandia; Ensimmäinen on A ja toinen on B, näiden kahden operandin muodostamien syötteiden kokonaisyhdistelmät ovat 4. Seuraavaa XOR-totuustaulukkoa käyttämällä määritetään vastaava tulos. Tulos tallennetaan C-muodossa, tästä C = A ^ B.

Tässä totuustaulukossa otetaan syöte bittien muodossa, eli 0 ja 1, ja myös ulostulo muodostetaan bittien muodossa, eli 0 ja 1.

C++ Bitwise XOR-operaattori

Tässä yllä olevassa XOR Truth -taulukossa havaitaan, että kun operandien A ja B arvot ovat erilaiset, eli ( 0, 1 ), ( 1, 0 ), tulos on aina 1. Ja kun Operandien A ja B arvot ovat samat, eli ( 0, 0 ), ( 1, 1 ), ulos tuleva tulos on aina 0.

Vastaavasti tällä tavalla voimme piirtää totuustaulukon Boolean arvot -

Olkoon kaksi operandia; ensimmäinen on A ja toinen on B . Näiden kahden operandin muodostamien syötteiden kokonaisyhdistelmät ovat 4. Seuraavaa XOR-totuustaulukkoa käyttämällä määritetään vastaava tulos. Tulos kaapataan muodossa C, tässä C = A ^ B.

Tässä totuustaulukossa otamme syötteen totuusarvojen muodossa, eli tosi ( T ) ja False ( F ). Tulos luodaan myös True-arvoina, eli T ja F.

C++ Bitwise XOR-operaattori

Tässä yllä olevassa XOR Truth -taulukossa havaitaan, että kun operandien A ja B arvot ovat erilaiset, eli ( F, T ), ( T, F ), tulos tulee aina olemaan T. Ja kun Operandien A ja B arvot ovat samat, eli ( F, F ), ( T, T ), tuloksena tulee aina F.

Yllä olevista taulukoista huomaamme sen T (tosi) on merkitty ykkösellä ja F (false) on merkitty 0:lla.

Toimenpiteet minkä tahansa ongelman ratkaisemiseksi -

  1. Tehtävässä annetut operandit ovat aina desimaaliarvoina.
  2. Ensinnäkin meidän on muutettava operandien arvot arvoiksi binääri
  3. Kun olet muuntanut operandien arvot binääriluvuiksi, aseta molemmat operandit päällekkäin.
  4. Muista, että ennen kuin käytät niissä yksinomaista TAI (XOR) -toimintoa, tarkista ystävällisesti numeroiden määrä heissä.
  5. Jos numeroiden määrä ei täsmää, ylimääräiset nollat ​​pienen operandin vasemmassa päässä tasapainottavat numeroiden määrän.
  6. Lopuksi sovelletaan yllä olevan totuustaulukon avulla XOR-operaatiota operandiin yksitellen ottaen bitti kerrallaan XOR-operaation soveltamista varten.
  7. Viimeinkin tulos tuotetaan tuotoksen muodossa.
  8. Tulos on binäärimuodossa. Muunna nyt binäärimuoto desimaalimuotoon ja merkitse tulosarvo muistiin.

Bitwise Exclusive OR (XOR) -operaation suorittaminen C++:ssa

Ymmärrämme yksityiskohtaisemmin XOR-operaation suorittamista C++:ssa esimerkkien avulla -

Esimerkki 1: Etsi kokonaislukuarvojen poissulkeva TAI; 10 ja 14. Selitä myös se ja kirjoita suorituskoodi C++:lla.

Ratkaisu: Tarkastellaan kahta muuttujaa ' a ' ja ' b ' tallentaaksemme vastaavat kaksi yllä olevassa kysymyksessä annettua operandia, eli 10 ja 14.

Tässä a = 10 ja b = 14.

Seuraamme alla olevia ohjeita saadaksemme selville annettujen kahden operandin yksinomaisen OR:n.

shreya ghoshal ensimmäinen aviomies
  1. Tiedämme, että 10 ja 14 ovat desimaalimuodossa, ja bittikohtaisen XOR-operaation soveltamiseksi se on muutettava binäärimuotoon.
  2. Binäärimuoto 'a', eli 10 on '1010' ja 'b':n binäärimuoto, eli 14 on '1110'.
  3. Tässä havaitaan, että a:ssa olevien binäärinumeroiden määrä on neljä ja b:ssä olevien binäärinumeroiden määrä on myös 4; siksi molemmissa muuttujissa olevien binäärinumeroiden määrä on sama ja jo tasapainotettu, meidän ei tarvitse lisätä enempää nollia sen tasapainottamiseksi.
  4. Laitetaan nyt 'b':ssä olevat binäärinumerot alas 'a':ssa oleviin binäärinumeroihin.
  5. Lopuksi XOR-operaation soveltaminen yksitellen vastaaviin bitteihin täsmää ja merkitse tulosteen muistiin.
  6. Viimeinkin generoitu tulos tulee olemaan binäärimuodossa, kuten yllä oleva kysymys on annettu desimaalimuodossa, joten tulos on muutettava desimaalimuotoon.

Selitys:

a = 10 ( desimaalimuodossa )

b = 14 ( desimaalimuodossa )

Nyt XOR b:lle meidän on muutettava a ja b binäärimuodossa -

a = 1010 (binäärimuodossa)

b = 1110 (binäärimuodossa)

Nyt sovelletaan XOR-operaatiota a:lle ja b -

a = 1010

b = 1110

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

a ^ b = 0100 ( Binäärimuodossa )

A ^ b:n tulos on 0100, joka on binäärimuodossa.

Muunnetaan nyt tulos desimaalimuotoon, joka on 4.

10^14 = 4

HUOMAA: Yllä olevaa XOR-totuustaulukkoa käyttämällä generoidaan vastaavien bittien lähtö.

Käytämme nyt bittikohtaista XOR-operaatiota 10:ssä ja 14:ssä C++-kielellä ja saamme tuloksen, eli 4.

dateformat.format

C++-koodi yllä olevaan esimerkkiin:

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

Lähtö

C++ Bitwise XOR-operaattori

Esimerkki 2: Etsi kokonaislukuarvojen poissulkeva TAI; 3 ja 15. Selitä myös se ja kirjoita suorituskoodi C++:lla.

Ratkaisu: Tarkastellaan kahta muuttujaa ' a ' ja ' b ' tallentaaksemme vastaavat kaksi yllä olevassa kysymyksessä annettua operandia, eli 3 ja 15.

Tässä a = 3 ja b = 15.

Seuraamme alla olevia ohjeita saadaksemme selville annettujen kahden operandin yksinomaisen OR:n.

  1. Tiedämme, että 3 ja 15 ovat desimaalimuodossa, ja bittikohtaisen XOR-operaation soveltamiseksi se on muutettava binäärimuotoon.
  2. Binäärimuoto 'a', eli 3 on 'yksitoista' ja 'b':n binäärimuoto, eli 15 on '1111'.
  3. Tässä havaitaan, että a:ssa olevien binäärinumeroiden määrä on kaksi ja b:ssä olevien binäärinumeroiden määrä on neljä; siksi kummassakin muuttujassa olevien binäärinumeroiden määrä ei ole sama. Siksi epätasapainossa meidän on lisättävä enemmän nollia alemman binääriluvun vasemmalle puolelle, eli a, joka on ' yksitoista' , tasapainottamaan sitä.
  4. Tasapainotuksen jälkeen a:n arvo on '0011' , ja b on '1111'.
  5. Laitetaan nyt 'b':ssä olevat binäärinumerot alas 'a':n binäärinumeroihin.
  6. Lopuksi XOR-operaation soveltaminen yksitellen vastaaviin bitteihin täsmää ja merkitse tulosteen muistiin.
  7. Viimeinkin generoitu tulos tulee olemaan binäärimuodossa, kuten yllä oleva kysymys on annettu desimaalimuodossa, joten tulos on muutettava desimaalimuotoon.

Selitys:

a = 3 ( desimaalimuodossa )

b = 15 ( desimaalimuodossa )

Nyt XOR b:lle meidän on muutettava a ja b binäärimuodossa -

a = 0011 (binäärimuodossa)

b = 1111 (binäärimuodossa)

Nyt sovelletaan XOR-operaatiota a:lle ja b -

a = 0011

b = 1111

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

a ^ b = 1100 ( Binäärimuodossa )

A ^ b:n tulos on 1100, joka on binäärimuodossa.

Muunnetaan nyt tulos desimaalimuotoon, joka on 12.

3^15 = 12

HUOMAA: Yllä olevaa XOR-totuustaulukkoa käyttämällä generoidaan vastaavien bittien lähtö.

Käytämme nyt bittikohtaista XOR-operaatiota 3:lle ja 15:lle C++-kielellä ja saamme tuloksen, eli 12.

C++-koodi yllä olevaan esimerkkiin:

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

Lähtö

C++ Bitwise XOR-operaattori