C ++

Bitové operátory C ++

Bitové operátory C ++
V tomto článku sa budeme zaoberať bitovými operátormi v programovacom jazyku C ++. Uvidíme niekoľko pracovných príkladov na podrobné pochopenie bitových operácií. V C ++ pracujú bitové operátory na individuálnej bitovej úrovni.

Stručný prehľad bitových operátorov

Operátor je symbol, ktorý dáva kompilátoru pokyn, aby vykonal určité matematické alebo logické operácie. V C ++ existuje niekoľko typov operátorov, napríklad:

  1. Aritmetické operátory
  2. Logickí operátori
  3. Relační operátori
  4. Prevádzkovatelia pridelenia
  5. Bitoví operátori
  6. Rôzni operátori

Všetci bitoví operátori pracujú na individuálnej bitovej úrovni. Bitový operátor je možné použiť iba na celočíselné a znakové dátové typy. Napríklad ak máte premennú typu celého čísla s veľkosťou 32 bitov a použijete bitovú operáciu NOT, použije sa bitový operátor NOT na všetkých 32 bitov. Takže nakoniec bude obrátených všetkých 32 bitov v premennej.

V C ++ je k dispozícii šesť rôznych bitových operátorov:

  1. Bitové ALEBO [reprezentované ako „|“]
  2. Bitové AND [reprezentované ako „&“]
  3. Bitový NIE [predstavovaný ako „~“]
  4. Bitový XOR [reprezentovaný ako „^“]
  5. Bitový posun vľavo [reprezentovaný ako „<<”]
  6. Bitový pravý posun [reprezentovaný ako „>>“]

Tabuľka bitových ALEBO Pravdy

Operátor Bitwise OR vyprodukuje 1, keď je aspoň jeden operand nastavený na 1. Tu je tabuľka pravdy pre operátor Bitwise OR:

Bit-1 Bit-2 Bit-1 | Bit-2
0 0 0
0 1 1
1 0 1
1 1 1

Tabuľka bitových operácií AND

Bitový operátor AND vytvorí 1, keď sú oba operandy nastavené na 1. Tu je tabuľka pravdy pre operátor Bitwise AND:

Bit-1 Bit-2 Bit-1 a bit-2
0 0 0
0 1 0
1 0 0
1 1 1

Bitová tabuľka NIE Pravdy

Bitový operátor NOT invertuje operand. Tu je tabuľka pravdy pre operátora Bitwise NOT:

Bit-1 ~ Bit-1
0 1
1 0

Bitová tabuľka pravdy XOR

Bitový operátor XOR vyprodukuje 1, len ak je jeden z operandov nastavený na 1. Tu je tabuľka pravdy pre operátor Bitwise AND:

Bit-1 Bit-2 Bit-1 ^ Bit-2
0 0 0
0 1 1
1 0 1
1 1 0

Operátor bitového ľavého posuvu

Operátor Bitový posun vľavo posunie všetky bity, ktoré zostali o zadaný počet zadaných bitov. Ak necháte posunúť všetky bity údajov o 1, pôvodné údaje sa vynásobia 2. Podobne, ak necháte posunúť všetky bity údajov o 2, pôvodné údaje sa vynásobia 4.

Operátor bitového posunu doprava

Operátor bitového posunu doprava posúva všetky bity doprava o zadaný počet zadaných bitov. Ak posuniete doprava všetky bity údajov o 1, pôvodné údaje sa rozdelia (celočíselné delenie) o 2. Podobne, ak posuniete všetky bity údajov doprava o 2, pôvodné údaje sa rozdelia (celočíselné delenie) o 4.

Príklady

Teraz, keď sme pochopili základný koncept bitových operácií, pozrime sa na pár príkladov, ktoré vám pomôžu porozumieť bitovým operáciám v C ++:

Príklady 7 a 8 slúžia na demonštráciu skutočného použitia bitových operátorov v programovacom jazyku C ++.

Príklad 1: Bitový operátor OR

V tomto príklade programu si ukážeme operátor Bitwise OR.

#include
#include
#include
pomocou namespace std;
// funkcia display ()
void display (string print_msg, int number)

bitset<16> myBitSet (číslo);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9, result = 0;
// Bitová operácia ALEBO
výsledok = prvé_číslo | druhé_číslo;
// vypíše vstupné čísla
cout << endl;
display ("Prvé číslo je =", prvé_číslo);
display ("Druhé číslo je =", druhé_číslo);
// vypíše výstupnú hodnotu
display ("first_num | second_num =", výsledok);
cout << endl;
návrat 0;

Príklad 2: Bitový operátor AND

V tomto príklade programu ilustrujeme operátor Bitwise AND.

#include
#include
#include
pomocou namespace std;
// funkcia display ()
void display (string print_msg, int number)

bitset<16> myBitSet (číslo);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9, result = 0;
// Bitová operácia AND
result = first_num & second_num;
// vytlačí vstupné čísla
cout << endl;
display ("Prvé číslo je =", prvé_číslo);
splay ("Druhé číslo je =", druhé_číslo);
// vypíše výstupnú hodnotu
display ("first_num & second_num =", výsledok);
cout << endl;
návrat 0;

Príklad 3: Bitový operátor NOT

V tomto príklade programu pochopíme, ako operátor Bitwise NOT pracuje v C++.

#include
#include
#include
pomocou namespace std;
// funkcia display ()
void display (string print_msg, int number)

bitset<16> myBitSet (číslo);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9, result_1 = 0, result_2 = 0;
// Bitová operácia NIE
result_1 = ~ prvé_číslo;
result_2 = ~ druhé_číslo;
// vypíše vstupné čísla a výstupné hodnoty
cout << endl;
display ("Prvé číslo je =", prvé_číslo);
display ("~ first_num =", result_1);
cout << endl;
// vypíše vstupné čísla a výstupné hodnoty
display ("Druhé číslo je =", druhé_číslo);
display ("~ second_num =", result_2);
cout << endl;
návrat 0;

Príklad 4: Bitový operátor XOR

Tento program má v úmysle vysvetliť, ako operátor Bitwise XOR pracuje v jazyku C++.

#include
#include
#include
pomocou namespace std;
// funkcia display ()
void display (string print_msg, int number)

bitset<16> myBitSet (číslo);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9, result = 0;
// Bitová operácia XOR
výsledok = prvé_počet ^ druhé_počet;
// vypíše vstupné čísla
cout << endl;
display ("Prvé číslo je =", prvé_číslo);
display ("Druhé číslo je =", druhé_číslo);
// vypíše výstupnú hodnotu
display ("first_num ^ second_num =", výsledok);
cout << endl;
návrat 0;

Príklad 5: Operátor bitového ľavého posuvu

Teraz uvidíme príklad operátora Bitwise Left Shift. V tomto programe sme deklarovali dve čísla, first_num a second_num celočíselného typu. Tu je „first_num“ posunutý vľavo o jeden bit a „second_num“ vľavo posunutý o dva bity.

#include
#include
#include
pomocou namespace std;
// funkcia display ()
void display (string print_msg, int number)

bitset<16> myBitSet (číslo);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9, result_1 = 0, result_2 = 0;
// Bitová operácia ľavého posunu
výsledok_1 = prvé_číslo << 1;
výsledok_2 = druhé_číslo << 2;
// vypíše vstupné čísla a výstupné hodnoty
cout << endl;
display ("Prvé číslo je =", prvé_číslo);
display ("first_num << 1     =  ", result_1);
cout << endl;
// vypíše vstupné čísla a výstupné hodnoty
display ("Druhé číslo je =", druhé_číslo);
display ("second_num << 2    =  ", result_2);
cout << endl;
návrat 0;

Príklad 6: Operátor bitového posunu doprava

Teraz uvidíme ďalší príklad na pochopenie operátora Bitwise Right Shift. Deklarovali sme dve čísla, first_num a second_num celočíselného typu. Tu je „first_num“ doprava posunutá o jeden bit a „second_num“ doprava o dva bity.

#include
#include
#include
pomocou namespace std;
// funkcia display ()
void display (string print_msg, int number)

bitset<16> myBitSet (číslo);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9, result_1 = 0, result_2 = 0;
// Operácia bitového posunu doprava
výsledok_1 = prvé_číslo >> 1;
result_2 = druhé_číslo >> 2;
// vypíše vstupné čísla a výstupné hodnoty
cout << endl;
display ("Prvé číslo je =", prvé_číslo);
display ("first_num >> 1 =", result_1);
cout << endl;
// vypíše vstupné čísla a výstupné hodnoty
display ("Druhé číslo je =", druhé_číslo);
display ("druhe_cislo >> 2 =", vysledok_2);
cout << endl;
návrat 0;

Príklad-7: Nastaviť bit

Tento príklad má ukázať, ako nastaviť konkrétny bit pomocou bitových operátorov.

#include
#include
#include
pomocou namespace std;
// funkcia display ()
void display (string print_msg, int number)

bitset<16> myBitSet (číslo);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9;
// vypíše vstupné číslo - prvé_číslo
cout << endl;
display ("Prvé číslo je =", prvé_číslo);
// Nastaviť 5. bit
first_num | = (1UL << 5);
// Tlačový výstup
display ("Nastaviť 5. bit first_num =", first_num);
cout << endl;
// vypíše vstupné číslo - druhé_číslo
cout << endl;
display ("Druhé číslo je =", druhé_číslo); // Nastaví šiesty bit
second_num | = (1UL << 6);
// Tlačový výstup
display ("Set 6. bit of second_num =", second_num);
cout << endl;
návrat 0;

Príklad-8: Vymazať bit

Tento príklad má ukázať, ako vyčistiť určitý bit pomocou bitových operátorov.

#include
#include
#include
pomocou namespace std;
// funkcia display ()
void display (string print_msg, int number)

bitset<16> myBitSet (číslo);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, second_num = 9;
// vypíše vstupné číslo - prvé_číslo
cout << endl;
display ("Prvé číslo je =", prvé_číslo);
// Vymazať druhý bit
first_num & = ~ (1UL << 2);
// Tlačový výstup
display ("Nastaviť 2. bit first_num =", first_num);
cout << endl;
// vypíše vstupné číslo - druhé_číslo
cout << endl;
display ("Druhé číslo je =", druhé_číslo);
// Vymazať 3. bit
second_num & = ~ (1UL << 3);
// Tlačový výstup
display ("Set 3. bit of second_num =", second_num);
cout << endl;
návrat 0;

Záver

Bitový operátor sa primárne používa na manipuláciu s jednotlivými bitmi pre celočíselný a znakový údajový typ. Bitový operátor sa vo veľkej miere používa pri vývoji zabudovaného softvéru. Ak teda vyvíjate ovládač zariadenia alebo systém veľmi blízky úrovni hardvéru, môžete použiť tieto bitové operátory.

Hry 5 najlepších arkádových hier pre Linux
5 najlepších arkádových hier pre Linux
V dnešnej dobe sú počítače vážne stroje používané na hranie hier. Ak nemôžete dosiahnuť nové najvyššie skóre, budete vedieť, čo tým myslím. V tomto pr...
Hry Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 Vývoj uvoľnený
Battle For Wesnoth 1.13.6 vydané minulý mesiac, je šiestym vývojovým vydaním v 1.13.séria x a prináša množstvo vylepšení, najmä používateľského rozhra...
Hry Ako nainštalovať League Of Legends na Ubuntu 14.04
Ako nainštalovať League Of Legends na Ubuntu 14.04
Ak ste fanúšikom League of Legends, potom je to pre vás príležitosť otestovať spustenie League of Legends. Upozorňujeme, že program PlayOnLinux podpor...