V C++ so prisotni različni operaterji. Vsak operater ima poseben simbol in operacijo, ki jo mora izvesti. V C++ imamo različne kategorije operatorjev.
- Aritmetični operatorji
- Relacijski operaterji
- Logični operatorji
- Operatorji dodelitve
- Bitni operaterji
V tem članku bomo spoznali bitne operaterje v C++.
deterministični končni avtomati
Bitni operaterji C++
Bitni operaterji so operatorji, ki se uporabljajo za izvajanje operacij na bitni ravni na celih številih. Pri izvajanju te operacije se cela števila obravnavajo kot zaporedja binarnih števk. V C++ imamo različne vrste bitnih operaterjev.
- Bitno IN (&)
- Bitno ALI (|)
- Bitni XOR (^)
- Bitno NE (~)
- Levi premik (<<)
- Desni premik (>>)
1. Bitno IN (&)
Operacija bitnega IN se izvede med dvema celima številoma. Primerja bo vsak bit na istem mestu in bit rezultata bo nastavljen (1) samo in samo, če sta nastavljena oba ustrezna bita (1). Simbol, ki se uporablja za izvajanje bitne operacije IN, je &.
Primer : izvedli bomo bitno operacijo med dvema številoma 7 in 4. V dvojiški obliki bo 7 predstavljeno kot 111, 4 pa kot 100.
1 1 1 & 1 0 0 ------ 1 0 0>
kot lahko vidimo v zgornjem primeru so nastavljeni samo tisti biti, katerih ustrezna bita (oba) sta nastavljena. Zato je 7&4=4
2. Bitni ALI (|)
Če se izvede bitna operacija ALI med dvema celima številoma, bo primerjala vsak bit na istem mestu in bit rezultata bo nastavljen (1), če je nastavljen kateri koli od ustreznih bitov (1). Simbol, ki se uporablja za izvajanje bitne operacije ALI, je |.
primer: izvedli bomo bitno operacijo ALI med dvema številoma 7 in 4. v dvojiški obliki bo 7 predstavljeno kot 111, 4 pa kot 100.
1 1 1 | 1 0 0 ------ 1 1 1>
kot lahko vidimo v zgornjem primeru, so ti biti nastavljeni, katerih vsaj en ustrezen bit je nastavljen. Zato je 7|4=7.
3. Bitni XOR (^)
Če se izvede bitna operacija XOR med dvema celima številoma, bo primerjal vsak bit na istem mestu in bit rezultata bo nastavljen (1), če se kateri koli od ustreznih bitov razlikuje, tj. eden od njih mora biti 1, drugi pa nič. Simbol, ki se uporablja za izvajanje bitne operacije XOR, je ^.
turbo c++ prenos
primer: izvedli bomo operacijo bitnega XOR med dvema številoma 7 in 4. v dvojiški obliki bo 7 predstavljeno kot 111, 4 pa kot 100.
1 1 1 ^ 1 0 0 ------ 0 1 1>
kot lahko vidimo v zgornjem primeru, so ti biti nastavljeni, katerih ustrezni biti so različni. Zato je 7^4=3.
4. Bitno NE (~)
Operacija Bitno NOT se izvede na eni številki. Trenutni bit spremeni v svoj komplement, tj. če je trenutni bit 0, bo rezultat 1 in če je trenutni bit 1, bo postal 0. Označen je s simbolom ~.
primer: Na številki 4 bomo izvedli bitno operacijo NE. Število 4 je v dvojiški obliki predstavljeno kot 100.
~ 1 0 0 ------ 0 1 1>
Kot lahko vidimo v rezultatu, so biti, katerih začetna vrednost je bila 1, v rezultatu 0 in obratno. Zato bo bitni NOT števila 4 3.
5. Levi premik (<<)
Ta operater premakne bite celega števila na levo stran za določeno število (kot že omenjeno). Ta operacija premika v levo je enakovredna množenju celega števila s potenco 2 za število premaknjenih položajev. Simbol, ki se uporablja za predstavitev levega operatorja premika, je <<.
primer: Recimo, da imamo celo število 5 in njegove bite bomo premaknili v levo za 2 položaja. Operacija bo predstavljena kot x << 2.
razlika med programom in skriptom
Število 5 je v dvojiški obliki predstavljeno kot 101. Na začetku bomo dodali nekaj ničel za premik bitov v levo. Zato bo predstavljen kot 00000101. Zdaj bomo vse bite premaknili za dve poziciji v levo in prazna mesta zapolnili z 0. Zato bo postalo 00010100, kar je 20. Kot smo že omenili, premik števila v levo za dva bita pomeni množenje z 2, povečano na 2, kar je 4. 5*4 = 20 prikazuje zgoraj omenjeno izjavo.
6. Desni premik (>>)
Ta operater premakne bite celega števila na desno stran za določeno število (kot omenjeno). Ta operacija premikanja v desno je enakovredna deljenju celega števila s potenco 2 število premaknjenih položajev. Simbol, ki se uporablja za predstavitev levega operaterja premika, je>>.
primer: Recimo, da imamo celo število 16 in njegove bite bomo premaknili v desno za 2 položaja. Operacija bo predstavljena kot x>> 2.
Število 16 je v dvojiški obliki predstavljeno kot 10000. Na začetku bomo dodali nekaj ničel, da premaknemo bite v desno. Zato bo predstavljen kot 00010000. Zdaj bomo premaknili vse bite za dve poziciji v desno in zapolnili prazna mesta z 0. Zato bo postalo 00000100, kar je 4. Kot smo že omenili, premik števila v desno za dva bita pomeni deljenje z 2, povečano na 2, kar je 4. 16*4 = 4 prikazuje zgoraj omenjeno izjavo.
Bitni operaterji programa C++
Spodaj je izvedba teme:
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; // Tiskanje rezultatov // Bitnih operaterjev 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;>
Izhod:
AND: 1 OR: 7 XOR: 6 NOT a: -6 Left Shift: 20 Right Shift: 2>
Zaključek
Skratka, bitni operaterji se uporabljajo za izvajanje operacij na binarni (bitni) ravni. V C++ imamo različne vrste bitnih operatorjev, kot so IN, ALI, XOR, NE, levi premik in desni premik. S temi operacijami se lahko manipulacija posameznih bitov izvaja zelo natančno, kar je bistveno pri obdelavi podatkov na nizki ravni.