Bittikohtaiset operaattorit C++:ssa
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 &.
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 ^.
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.
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ä.