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ů.
- Aritmetické operátory
- Relační operátoři
- Logické operátory
- Operátoři přiřazení
- 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ů.
- Bitové AND (&)
- Bitové NEBO (|)
- Bitové XOR (^)
- Bitově NE (~)
- Levý Shift (<<)
- 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.