Există diferiți operatori prezenți în C++. Fiecare Operator are un anumit simbol, precum și o Operație de efectuat. Avem diferite categorii de operatori în C++.
- Operatori aritmetici
- Operatori Relaționali
- Operatori logici
- Operatori de atribuire
- Operatori pe biți
În acest articol, vom afla despre operatorii bitwise în C++.
Operatori C++ pe biți
Operatorii pe biți sunt operatorii care sunt utilizați pentru a efectua operații la nivel de biți pe numere întregi. În timpul efectuării acestei operații, numerele întregi sunt considerate ca și secvențe de cifre binare. În C++, avem diferite tipuri de operatori pe biți.
- ȘI pe biți (&)
- SAU pe biți (|)
- XOR pe biți (^)
- Pe bit NU (~)
- Shift la stânga (<<)
- Shift la dreapta (>>)
1. ȘI pe biți (&)
Operația ȘI pe biți este efectuată între două numere întregi, va compara fiecare bit pe aceeași poziție și bitul rezultat va fi setat(1) numai și numai dacă ambii biți corespunzători sunt setați(1). Simbolul care este folosit pentru a efectua operația ȘI pe biți este &.
Exemplu : vom efectua o operație pe biți între două numere 7 și 4. În binar 7 va fi reprezentat ca 111 și 4 va fi reprezentat ca 100.
pentru buclă java
1 1 1 & 1 0 0 ------ 1 0 0>
după cum putem vedea în exemplul de mai sus, doar acei biți sunt biți setați ai căror biți corespunzători (ambele) sunt setați. Prin urmare 7&4=4
2. SAU pe biți (|)
Dacă operația SAU pe biți este efectuată între două numere întregi, va compara fiecare bit în aceeași poziție și bitul rezultat va fi setat (1) dacă oricare dintre biții corespunzători este setat (1). Simbolul care este utilizat pentru a efectua operația SAU pe biți este |.
Exemplu: vom efectua operația SAU pe biți între două numere 7 și 4. în binar 7 va fi reprezentat ca 111 și 4 va fi reprezentat ca 100.
1 1 1 | 1 0 0 ------ 1 1 1>
după cum putem vedea în exemplul de mai sus, acei biți sunt biți setați al căror cel puțin un bit corespunzător este setat. Prin urmare 7|4=7.
3. XOR pe biți (^)
Dacă operația XOR pe biți este efectuată între două numere întregi, acesta va compara fiecare bit în aceeași poziție și bitul rezultat va fi setat (1) dacă oricare dintre biții corespunzători diferă, adică unul dintre ei ar trebui să fie 1, iar celălalt ar trebui să fie zero. Simbolul care este folosit pentru a efectua operația XOR pe biți este ^.
Exemplu: vom efectua operația XOR pe biți între două numere 7 și 4. în binar 7 va fi reprezentat ca 111 și 4 va fi reprezentat ca 100.
1 1 1 ^ 1 0 0 ------ 0 1 1>
după cum putem vedea în exemplul de mai sus, acei biți sunt biți setați ai căror biți corespunzători sunt diferiți. Prin urmare 7^4=3.
chmod 755
4. Pe bit NU (~)
Operațiunea NOT pe biți este efectuată pe un singur număr. Schimbă bitul curent în complementul său, adică dacă bitul curent este 0, atunci va fi 1 și dacă bitul curent este 1, atunci va deveni 0. Este notat cu simbolul ~.
algebra multimilor
Exemplu: Vom efectua operația NOT pe biți pe numărul 4. Numărul 4 este reprezentat ca 100 în binar.
~ 1 0 0 ------ 0 1 1>
După cum putem vedea în rezultat, biții a căror valoare inițială a fost 1 sunt 0 în rezultat și invers. Prin urmare, NU pe biți a numărului 4 va fi 3.
5. Shift la stânga (<<)
Acest operator mută biții întregului în partea stângă cu un anumit număr (După cum s-a menționat). Această operație de deplasare la stânga este echivalentă cu înmulțirea întregului cu 2 putere a numărului de poziții deplasate. Simbolul care este folosit pentru a reprezenta operatorul de schimbare la stânga este <<.
Exemplu: Luați în considerare că avem un număr întreg 5 și îi vom deplasa la stânga biții cu 2 poziții. Operația va fi reprezentată ca x << 2.
Numărul 5 este reprezentat ca 101 în binar. Vom adăuga câteva zerouri la început pentru a deplasa la stânga biții. Prin urmare, va fi reprezentat ca 00000101. Acum, vom muta toți biții cu două poziții la stânga și vom umple pozițiile goale cu 0. Prin urmare, va deveni 00010100 care este 20 . După cum am menționat mai devreme, la stânga, mutarea numărului cu doi biți înseamnă înmulțirea lui cu 2 ridicată la 2 care este 4. 5*4 = 20 arată afirmația menționată mai sus.
6. Shift la dreapta (>>)
Acest operator mută biții întregului în partea dreaptă după un anumit număr (După cum s-a menționat). Această operație de schimbare la dreapta este echivalentă cu împărțirea întregului la 2 puteri, numărul de poziții deplasate. Simbolul care este folosit pentru a reprezenta operatorul de schimbare la stânga este>>.
modelul tcp și ip
Exemplu: Luați în considerare că avem un număr întreg 16 și îi vom deplasa la dreapta biții cu 2 poziții. Operația va fi reprezentată ca x>> 2.
Numărul 16 este reprezentat ca 10000 în binar. Vom adăuga câteva zerouri la început pentru a deplasa biții la dreapta. Prin urmare, va fi reprezentat ca 00010000. Acum, vom muta toți biții două poziții la dreapta și vom umple pozițiile goale cu 0. Prin urmare, va deveni 00000100 care este 4. După cum am menționat mai devreme, deplasarea la dreapta a numărului cu doi biți înseamnă împărțirea lui la 2 ridicată la 2 care este 4. 16*4 = 4 arată afirmația menționată mai sus.
Operatori pe biți ai programului C++
Mai jos este implementarea subiectului:
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; // Tipărirea rezultatelor // Operatorilor pe biți 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;>
Ieșire:
AND: 1 OR: 7 XOR: 6 NOT a: -6 Left Shift: 20 Right Shift: 2>
Concluzie
În concluzie, operatorii pe biți sunt utilizați pentru a efectua operații la nivel binar (biți). Avem diverse tipuri de operatori pe biți ca și operatori AND, OR, XOR, NOT, deplasare la stânga și deplasare la dreapta în C++. Prin această operație, manipularea biților individuali se poate face foarte precis, ceea ce este esențial în manipularea datelor la nivel scăzut.