V C++ sú prítomní rôzni operátori. Každý operátor má konkrétny symbol, ako aj operáciu, ktorú má vykonať. V C++ máme rôzne kategórie operátorov.
- Aritmetické operátory
- Vzťahoví operátori
- Logické operátory
- Operátori pridelenia
- Bitové operátory
V tomto článku sa dozvieme o bitových operátoroch v C++.
Sridevi
Bitové operátory C++
Bitové operátory sú operátory, ktoré sa používajú na vykonávanie operácií na úrovni bitov na celých číslach. Pri vykonávaní tejto operácie sa celé čísla považujú za postupnosti binárnych číslic. V C++ máme rôzne typy bitových operátorov.
- Bitové A (&)
- Bitové ALEBO (|)
- Bitové XOR (^)
- Bitové NIE (~)
- Ľavý Shift (<<)
- Pravý Shift (>>)
1. Bitové A (&)
Bitová operácia AND sa vykonáva medzi dvoma celými číslami, porovná každý bit na rovnakej pozícii a výsledný bit sa nastaví (1) len a len vtedy, ak sú nastavené oba zodpovedajúce bity (1). Symbol, ktorý sa používa na vykonanie bitovej operácie AND, je &.
Príklad : vykonáme bitovú operáciu medzi dvoma číslami 7 a 4. V binárnej sústave bude 7 reprezentovaná ako 111 a 4 bude reprezentovaná ako 100.
1 1 1 & 1 0 0 ------ 1 0 0>
ako môžeme vidieť vo vyššie uvedenom príklade, iba tie bity sú nastavené bitmi, ktorých zodpovedajúce bity (oba) sú nastavené. Preto 7&4=4
2. Bitové ALEBO (|)
Ak sa operácia Bitwise OR vykonáva medzi dvoma celými číslami, porovná každý bit na rovnakej pozícii a výsledný bit sa nastaví (1), ak je nastavený niektorý zo zodpovedajúcich bitov (1). Symbol, ktorý sa používa na vykonanie bitovej operácie OR, je |.
Príklad: vykonáme bitovú operáciu OR medzi dvoma číslami 7 a 4. v binárnej sústave 7 bude reprezentovaná ako 111 a 4 bude reprezentovaná ako 100.
1 1 1 | 1 0 0 ------ 1 1 1>
ako môžeme vidieť vo vyššie uvedenom príklade, tieto bity sú nastavené bity, ktorých aspoň jeden zodpovedajúci bit je nastavený. Preto 7|4=7.
3. Bitové XOR (^)
Ak sa bitová operácia XOR vykonáva medzi dvoma celými číslami, porovná každý bit na rovnakej pozícii a výsledný bit sa nastaví (1), ak sa ktorýkoľvek zo zodpovedajúcich bitov líši, t. j. jeden z nich by mal byť 1 a druhý nula. Symbol, ktorý sa používa na vykonanie bitovej operácie XOR, je ^.
Príklad: vykonáme bitovú operáciu XOR medzi dvoma číslami 7 a 4. v binárnej sústave 7 bude reprezentovaná ako 111 a 4 bude reprezentovaná ako 100.
1 1 1 ^ 1 0 0 ------ 0 1 1>
ako môžeme vidieť vo vyššie uvedenom príklade, tieto bity sú nastavené bity, ktorých zodpovedajúce bity sú odlišné. Preto 7^4=3.
10 percent zo 60
4. Bitové NIE (~)
Operácia Bitwise NOT sa vykonáva na jednom čísle. Zmení aktuálny bit na jeho doplnok, t.j. ak je aktuálny bit 0, vo výsledku bude 1 a ak aktuálny bit je 1, stane sa 0. Označuje sa symbolom ~.
8 na 1 multiplexer
Príklad: Vykonáme bitovú operáciu NOT na čísle 4. Číslo 4 je reprezentované ako 100 v binárnom kóde.
~ 1 0 0 ------ 0 1 1>
Ako vidíme vo výsledku, bity, ktorých počiatočná hodnota bola 1, sú vo výsledku 0 a naopak. Preto bitové NIE čísla 4 bude 3.
5. Ľavý Shift (<<)
Tento operátor posúva bity čísla Integer doľava o konkrétne číslo (ako bolo uvedené). Táto operácia posunu doľava je ekvivalentná vynásobeniu celého čísla 2-násobkom počtu posunutých pozícií. Symbol, ktorý sa používa na označenie operátora ľavého posunu, je <<.
Príklad: Uvažujme, že máme celé číslo 5 a jeho bity posunieme doľava o 2 pozície. Operácia bude reprezentovaná ako x << 2.
Číslo 5 je reprezentované ako 101 v binárnom systéme. Na začiatok pridáme niekoľko núl, aby sme bity posunuli doľava. Preto bude reprezentovaný ako 00000101. Teraz presunieme všetky bity o dve pozície doľava a prázdne pozície vyplníme 0. Preto bude 00010100, čo je 20 . Ako už bolo spomenuté, posunutie čísla doľava o dva bity znamená jeho vynásobenie číslom 2 zvýšené na 2, čo je 4. 5*4 = 20 ukazuje vyššie uvedené tvrdenie.
6. Pravý Shift (>>)
Tento operátor posúva bity čísla Integer na pravú stranu o konkrétne číslo (ako bolo uvedené). Táto operácia posunutia doprava je ekvivalentná deleniu celého čísla 2 mocninou počtu posunutých pozícií. Symbol, ktorý sa používa na označenie operátora ľavého posunu, je>>.
np.jedinečný
Príklad: Uvažujme, že máme celé číslo 16 a jeho bity posunieme doprava o 2 pozície. Operácia bude reprezentovaná ako x>> 2.
Číslo 16 je binárne reprezentované ako 10 000. Na začiatok pridáme niekoľko núl, aby sme bity posunuli doprava. Preto bude reprezentovaný ako 00010000. Teraz presunieme všetky bity o dve pozície doprava a prázdne pozície vyplníme 0. Preto bude 00000100, čo je 4 . Ako už bolo spomenuté, posunutie čísla o dva bity doprava znamená jeho delenie číslom 2 zvýšené na 2, čo je 4. 16*4 = 4 znázorňuje vyššie uvedené tvrdenie.
Program C++ Bitové operátory
Nižšie je uvedená implementácia témy:
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; // Tlač výsledkov // 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;>
Výkon:
AND: 1 OR: 7 XOR: 6 NOT a: -6 Left Shift: 20 Right Shift: 2>
Záver
Na záver, bitové operátory sa používajú na vykonávanie operácií na binárnej (bitovej) úrovni. V C++ máme rôzne druhy bitových operátorov ako AND, OR, XOR, NOT, ľavý posun a pravý posun. Touto operáciou je možné veľmi presne vykonávať manipuláciu s jednotlivými bitmi, čo je nevyhnutné pri manipulácii s dátami na nízkej úrovni.