C++:ssa on useita operaattoreita. Jokaisella operaattorilla on tietty symboli sekä suoritettava toiminto. Meillä on erilaisia C++-operaattoreita.
- Aritmeettiset operaattorit
- Relaatiooperaattorit
- Loogiset operaattorit
- Tehtäväoperaattorit
- Bittikohtaiset operaattorit
Tässä artikkelissa opimme Bitwise-operaattoreista C++:ssa.
C++ Bitwise-operaattorit
Bittioperaattorit ovat operaattoreita, joita käytetään suorittamaan operaatioita bittitasolla kokonaisluvuilla. Tätä toimintoa suoritettaessa kokonaislukuja pidetään binäärilukujen sarjoina. C++:ssa meillä on erilaisia Bitwise-operaattoreita.
- Bittikohtainen JA (&)
- Bittikohtainen TAI (|)
- Bittikohtainen XOR (^)
- Bittikohtaisesti EI (~)
- Vasen vaihto (<<)
- Oikea vaihto (>>)
1. Bittikohtainen JA (&)
Bittikohtainen JA-toiminto suoritetaan kahden kokonaisluvun välillä. Se vertaa jokaista bittiä samassa paikassa ja tulosbitti asetetaan vain (1) ja vain jos molemmat vastaavat bitit on asetettu (1). Bittikohtaisen JA-operaation suorittamiseen käytetty symboli on &.
lajittelu Javassa arraylistissa
Esimerkki : Suoritamme bittioperaation kahden luvun 7 ja 4 välillä. Binäärissä 7 esitetään muodossa 111 ja 4 esitetään 100:na.
1 1 1 & 1 0 0 ------ 1 0 0>
Kuten yllä olevassa esimerkissä näemme, vain ne bitit ovat asetettuja bittejä, joiden vastaavat bitit (molemmat) on asetettu. Siksi 7&4=4
2. Bittikohtainen TAI (|)
Jos Bitwise TAI -operaatio suoritetaan kahden kokonaisluvun välillä, se vertaa jokaista bittiä samassa paikassa ja tulosbitti asetetaan (1), jos jokin vastaavista biteistä asetetaan (1). Symboli, jota käytetään suorittamaan bittikohtainen TAI -toiminto, on |.
Esimerkki: suoritamme bittikohtaisen TAI -operaation kahden luvun 7 ja 4 välillä. binäärimuodossa 7 esitetään 111:nä ja 4 esitetään 100:na.
1 1 1 | 1 0 0 ------ 1 1 1>
Kuten yllä olevassa esimerkissä näemme, ne bitit ovat asetettuja bittejä, joille on asetettu vähintään yksi vastaava bitti. Siksi 7|4=7.
3. Bittikohtainen XOR (^)
Jos Bitwise XOR-operaatio suoritetaan kahden kokonaisluvun välillä, se vertaa jokaista bittiä samassa paikassa ja tulosbitti asetetaan (1), jos jokin vastaavista biteistä eroaa, eli yhden niistä pitäisi olla 1 ja toisen tulee olla nolla. Symboli, jota käytetään suorittamaan bittikohtainen XOR-toiminto, on ^.
chmod 755
Esimerkki: suoritamme bittikohtaisen XOR-operaation kahden luvun 7 ja 4 välillä. binäärissä 7 esitetään 111:nä ja 4 esitetään 100:na.
1 1 1 ^ 1 0 0 ------ 0 1 1>
Kuten yllä olevassa esimerkissä näemme, ne bitit ovat asetettuja bittejä, joiden vastaavat bitit ovat erilaisia. Siksi 7^4=3.
4. Bittikohtaisesti EI (~)
Bitwise NOT -toiminto suoritetaan yhdelle numerolle. Se muuttaa nykyisen bitin komplementiksi, eli jos nykyinen bitti on 0, se on tuloksena 1 ja jos nykyinen bitti on 1, siitä tulee 0. Sitä merkitään symbolilla ~.
Esimerkki: Suoritamme bittikohtaisen NOT-operaation numerolle 4. Numero 4 esitetään binäärimuodossa 100.
~ 1 0 0 ------ 0 1 1>
Kuten tuloksesta nähdään, ne bitit, joiden alkuarvo oli 1, ovat tuloksessa 0 ja päinvastoin. Siksi Bitwise EI numerosta 4 on 3.
5. Vasen vaihto (<<)
Tämä operaattori siirtää kokonaisluvun bitit vasemmalle tietyllä numerolla (Kuten mainittiin). Tämä vasemmalle siirtooperaatio vastaa kokonaisluvun kertomista kahdella siirrettyjen paikkojen potenssilla. Symboli, jota käytetään edustamaan vasenta vuorooperaattoria, on <<.
Esimerkki: Oletetaan, että meillä on kokonaisluku 5, ja siirrämme sen bittejä vasemmalle 2 paikkaa. Toiminto esitetään muodossa x << 2.
Numero 5 esitetään binäärimuodossa 101. Lisäämme alkuun muutamia nollia siirtääksemme bittejä vasemmalle. Siksi se esitetään muodossa 00000101. Nyt siirrämme kaikki bitit kaksi paikkaa vasemmalle ja täytämme tyhjät paikat 0:lla. Siksi siitä tulee 00010100, joka on 20 . Kuten aiemmin mainittiin, luvun siirtäminen vasemmalle kahdella bitillä tarkoittaa sen kertomista kahdella korotettuna 2:ksi, joka on 4. 5*4 = 20 osoittaa edellä mainitun väitteen.
6. Oikea vaihto (>>)
Tämä operaattori siirtää kokonaisluvun bitit oikealle tietyllä numerolla (Kuten mainittiin). Tämä oikealle siirtooperaatio vastaa kokonaisluvun jakamista kahdella siirrettyjen paikkojen tehomäärällä. Symboli, jota käytetään edustamaan vasenta vuorooperaattoria, on>>.
Esimerkki: Oletetaan, että meillä on kokonaisluku 16, ja siirrämme sen bittejä oikealle 2 paikkaa. Toiminto esitetään muodossa x>> 2.
Numero 16 esitetään binäärimuodossa 10 000. Lisäämme alkuun nollia siirtääksesi bittejä oikealle. Siksi se esitetään muodossa 00010000. Nyt siirrämme kaikki bitit kaksi paikkaa oikealle ja täytämme tyhjät paikat 0:lla. Siksi siitä tulee 00000100, joka on 4 . Kuten aiemmin mainittiin, luvun siirtäminen oikealle kahdella bitillä tarkoittaa sen jakamista kahdella korotettuna 2:ksi, joka on 4. 16*4 = 4 esittää edellä mainitun väitteen.
merkkijono jsonobject
C++-ohjelman bittikohtaiset operaattorit
Alla aiheen toteutus:
C++ // C++ Program to demonstrate // Bitwise Operator #include using namespace std; // Main function int main() b; // Bitwise XOR int bitwise_xor = a ^ b; // Bitwise NOT int bitwise_not = ~a; // Bitwise Left Shift int left_shift = a << 2; // Bitwise Right Shift int right_shift = a>> 1; // Tulosten tulostaminen // Bitwise Operators cout<< 'AND: ' << bitwise_and << endl; cout << 'OR: ' << bitwise_or << endl; cout << 'XOR: ' << bitwise_xor << endl; cout << 'NOT a: ' << bitwise_not << endl; cout << 'Left Shift: ' << left_shift << endl; cout << 'Right Shift: ' << right_shift << endl; return 0;>
Lähtö:
AND: 1 OR: 7 XOR: 6 NOT a: -6 Left Shift: 20 Right Shift: 2>
Johtopäätös
Yhteenvetona voidaan todeta, että Bitwise-operaattoreita käytetään suorittamaan operaatioita binääritasolla (bittitasolla). Meillä on erilaisia Bitwise-operaattoreita kuten AND, OR, XOR, NOT, vasen siirto ja oikea siirtooperaattorit C++:ssa. Näillä toimenpiteillä yksittäisten bittien manipulointi voidaan tehdä erittäin tarkasti, mikä on välttämätöntä matalan tason tiedonkäsittelyssä.