logo

Bitové operátory v C++

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.

  1. Aritmetické operátory
  2. Vzťahoví operátori
  3. Logické operátory
  4. Operátori pridelenia
  5. 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.

  1. Bitové A (&)
  2. Bitové ALEBO (|)
  3. Bitové XOR (^)
  4. Bitové NIE (~)
  5. Ľavý Shift (<<)
  6. 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.