logo

Bitové operátory v C++

V C++ jsou přítomni různí operátoři. Každý operátor má určitý symbol a také operaci, kterou má provést. V C++ máme různé kategorie operátorů.

  1. Aritmetické operátory
  2. Relační operátoři
  3. Logické operátory
  4. Operátoři přiřazení
  5. Bitové operátory

V tomto článku se dozvíme o bitových operátorech v C++.



Bitové operátory C++

Bitové operátory jsou operátory, které se používají k provádění operací na úrovni bitů na celých číslech. Při provádění této operace jsou celá čísla považována za posloupnosti binárních číslic. V C++ máme různé typy bitových operátorů.

  1. Bitové AND (&)
  2. Bitové NEBO (|)
  3. Bitové XOR (^)
  4. Bitově NE (~)
  5. Levý Shift (<<)
  6. Pravý Shift (>>)

1. Bitové AND (&)

Bitová operace AND se provádí mezi dvěma celými čísly, porovná každý bit na stejné pozici a výsledný bit bude nastaven pouze (1) a pouze v případě, že jsou nastaveny oba odpovídající bity (1). Symbol, který se používá k provedení bitové operace AND, je &.

Příklad : provedeme bitovou operaci mezi dvěma čísly 7 a 4. V binárním kódu bude 7 reprezentována jako 111 a 4 bude reprezentována jako 100.

 1 1 1 & 1 0 0  ------  1 0 0>

jak můžeme vidět ve výše uvedeném příkladu, pouze ty bity jsou nastaveny bity, jejichž odpovídající bity (oba) jsou nastaveny. Proto 7&4=4

2. Bitové NEBO (|)

Pokud se operace Bitwise OR provádí mezi dvěma celými čísly, porovná každý bit na stejné pozici a výsledný bit bude nastaven (1), pokud je nastaven některý z odpovídajících bitů (1). Symbol, který se používá k provedení bitové operace OR, je |.

převod řetězce na datum

Příklad: provedeme bitovou operaci OR mezi dvěma čísly 7 a 4. v binárním čísle 7 bude reprezentováno jako 111 a 4 bude reprezentováno jako 100.

 1 1 1 | 1 0 0  ------  1 1 1>

jak můžeme vidět ve výše uvedeném příkladu, tyto bity jsou nastavené bity, jejichž alespoň jeden odpovídající bit je nastaven. Proto 7|4=7.

3. Bitové XOR (^)

Pokud se operace Bitwise XOR provádí mezi dvěma celými čísly, porovná každý bit na stejné pozici a výsledný bit bude nastaven (1), pokud se kterýkoli z odpovídajících bitů liší, tj. jeden z nich by měl být 1 a druhý by měl být nula. Symbol, který se používá k provedení bitové operace XOR, je ^.

Příklad: provedeme bitovou operaci XOR mezi dvěma čísly 7 a 4. v binárním čísle 7 bude reprezentováno jako 111 a 4 bude reprezentováno jako 100.

 1 1 1 ^ 1 0 0  ------  0 1 1>

jak můžeme vidět ve výše uvedeném příkladu, tyto bity jsou nastavené bity, jejichž odpovídající bity jsou různé. Proto 7^4=3.

4. Bitově NE (~)

Operace Bitwise NOT se provádí na jednom čísle. Změní aktuální bit na svůj doplněk, tj. pokud je aktuální bit 0, ve výsledku bude 1 a pokud je aktuální bit 1, stane se 0. Označuje se symbolem ~.

Příklad: Provedeme bitovou operaci NOT na čísle 4. Číslo 4 je reprezentováno jako 100 v binární podobě.

~ 1 0 0  ------  0 1 1>

Jak vidíme ve výsledku, bity, jejichž počáteční hodnota byla 1, jsou ve výsledku 0 a naopak. Proto Bitwise NOT čísla 4 bude 3.

5. Levý Shift (<<)

Tento operátor posouvá bity Integer doleva o konkrétní číslo (Jak bylo zmíněno) . Tato operace posunu doleva je ekvivalentní násobení celého čísla 2 mocninou posunutých pozic. Symbol, který se používá k reprezentaci operátoru levého posunu, je <<.

Příklad: Uvažujme, že máme celé číslo 5, a jeho bity posuneme doleva o 2 pozice. Operace bude reprezentována jako x << 2.

Číslo 5 je reprezentováno jako 101 v binární podobě. Na začátek přidáme nějaké nuly, abychom bity posunuli doleva. Bude tedy reprezentován jako 00000101. Nyní přesuneme všechny bity o dvě pozice doleva a prázdné pozice vyplníme 0. Bude tedy 00010100, což je 20. Jak již bylo zmíněno dříve, posunutí čísla doleva o dva bity znamená jeho vynásobení 2 zvýšenými na 2, což je 4. 5*4 = 20 ukazuje výše uvedené tvrzení.

if a jinde v bash

6. Pravý Shift (>>)

Tento operátor posouvá bity Integer na pravou stranu o konkrétní číslo (Jak bylo zmíněno) . Tato operace posunutí doprava je ekvivalentní dělení celého čísla 2 mocninou počtu posunutých pozic. Symbol, který se používá k označení operátoru levé směny, je>>.

Příklad: Uvažujme, že máme celé číslo 16, a jeho bity posuneme doprava o 2 pozice. Operace bude reprezentována jako x>> 2.

Číslo 16 je binárně reprezentováno jako 10000. Na začátek přidáme nějaké nuly, abychom bity posunuli doprava. Bude tedy reprezentován jako 00010000. Nyní přesuneme všechny bity o dvě pozice doprava a prázdné pozice vyplníme 0. Bude tedy 00000100, což je 4 . Jak již bylo zmíněno dříve, posunutí čísla o dva bity doprava znamená jeho dělení 2 zvýšenými na 2, což je 4. 16*4 = 4 ukazuje výše uvedené tvrzení.

Program C++ Bitové operátory

Níže je implementace tématu:

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;  // Tisk výsledků // 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ýstup:

AND: 1 OR: 7 XOR: 6 NOT a: -6 Left Shift: 20 Right Shift: 2>

Závěr

Závěrem lze říci, že bitové operátory se používají k provádění operací na binární (bitové) úrovni. V C++ máme různé druhy bitových operátorů jako AND, OR, XOR, NOT, levý posuv a pravý posuv. Pomocí těchto operací lze velmi přesně provádět manipulaci s jednotlivými bity, což je nezbytné při zpracování dat na nízké úrovni.