C ++

C ++ bitni operaterji

C ++ bitni operaterji
V tem članku bomo razpravljali o bitnih operatorjih v programskem jeziku C ++. Videli bomo več delovnih primerov za podrobno razumevanje bitnih operacij. V C ++ bitni operaterji delujejo na posamezni ravni bitov.

Kratek pregled bitnih operaterjev

Operator je simbol, ki prevajalniku naroči, da izvede določene matematične ali logične operacije. V jeziku C ++ obstaja več vrst operaterjev, na primer:

  1. Aritmetični operaterji
  2. Logični operaterji
  3. Relacijski operaterji
  4. Operatorji dodelitve
  5. Bitni operaterji
  6. Drugi operaterji

Vsi bitni operaterji delujejo na posamezni ravni bitov. Bitni operator je mogoče uporabiti samo za celoštevilčne in znakovne podatkovne tipe. Če imate na primer spremenljivko celoštevilčnega tipa z velikostjo 32 bitov in uporabite bitno operacijo NOT, bo bitni operator NOT uporabljen za vseh 32 bitov. Tako bodo sčasoma vseh 32 bitov v spremenljivki obrnjeni.

V jeziku C ++ je na voljo šest različnih bitnih operatorjev:

  1. Bitno ALI [predstavljeno kot »|«]
  2. Bit-bit AND [predstavljen kot »&«]
  3. Bitno NOT [predstavljeno kot »~«]
  4. Bit-bit XOR [predstavljen kot »^«]
  5. Bitwise Left Shift [predstavljen kot »<<”]
  6. Bit-Right Shift [predstavljen kot »>>«]

Tabela bitov ALI resnica

Operator Bitwise OR ustvari 1, če je vsaj en operand nastavljen na 1. Tu je tabela resnic za operater Bitwise OR:

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

Tabela bitov in resnic

Bitni operator AND proizvede 1, če sta oba operanda nastavljena na 1. Tu je tabela resnic za operater Bitwise AND:

Bit-1 Bit-2 Bit-1 in Bit-2
0 0 0
0 1 0
1 0 0
1 1 1

Tabela resnic NE

Operator bitov NOT pretvori operand. Tu je tabela resnic za operator Bitwise NOT:

Bit-1 ~ Bit-1
0 1
1 0

Tabela resnic v bitnih razmerah XOR

Operator XOR v bitnih nastavitvah ustvari 1, če in samo, če je eden od operandov nastavljen na 1. Tu je tabela resnic za bitni operater AND:

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

Operator bit-levega prestavljanja

Bitwise Left Shift operator premakne vse bite, ki jih pusti določeno število določenih bitov. Če ste vse bitov podatkov premaknili za 1, se bodo izvirni podatki pomnožili z 2. Podobno, če ste leve podatke premaknili za 2, se bodo izvirni podatki pomnožili s 4.

Operater premika v bitnem položaju

Operator bit-shift Shift pomakne vse bitov desno za določeno število določenih bitov. Če vse bitov podatkov premaknete v desno za 1, bodo izvirni podatki deljeni (celoštevilčna delitev) za 2. Podobno, če vse bitov podatkov premaknete desno za 2, bodo izvirni podatki deljeni (celoštevilčna delitev) za 4.

Primeri

Ker smo zdaj razumeli osnovni koncept bitnih operacij, si oglejmo nekaj primerov, ki vam bodo pomagali razumeti bitne operacije v C ++:

Primera 7 in 8 sta za prikaz dejanske uporabe bitnih operatorjev v programskem jeziku C ++.

Primer-1: Bitni ALI operater

V tem primeru bomo prikazali operator Bitwise OR.

#include
#include
#include
uporaba imenskega prostora std;
// funkcija display ()
prikaz praznine (niz print_msg, int številka)

bitna bitna različica<16> myBitSet (število);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int prva_številka = 7, druga_številka = 9, rezultat = 0;
// Bitna ALI operacija
rezultat = prva_številka | drugo_številko;
// natisnemo vhodne številke
cout << endl;
prikaz ("Prva številka je =", prva_številka);
zaslon ("Second Number is =", second_num);
// natisnemo izhodno vrednost
prikaz ("first_num | second_num =", rezultat);
cout << endl;
vrnitev 0;

Primer-2: Bitni in operater

V tem primeru bomo ponazorili bitni operater AND.

#include
#include
#include
uporaba imenskega prostora std;
// funkcija display ()
prikaz praznine (niz print_msg, int številka)

bitna bitna različica<16> myBitSet (število);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int prva_številka = 7, druga_številka = 9, rezultat = 0;
// Bitno delovanje IN
rezultat = prva_številka & druga_številka;
// natisnemo vhodne številke
cout << endl;
prikaz ("Prva številka je =", prva_številka);
splay ("Druga številka je =", druga_številka);
// natisnemo izhodno vrednost
prikaz ("first_num & second_num =", rezultat);
cout << endl;
vrnitev 0;

Primer-3: Operator v bitnih smereh NOT

V tem primeru bomo razumeli, kako v C deluje operator Bitwise NOT++.

#include
#include
#include
uporaba imenskega prostora std;
// funkcija display ()
prikaz praznine (niz print_msg, int številka)

bitna bitna različica<16> myBitSet (število);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int prva_številka = 7, druga_številka = 9, rezultat_1 = 0, rezultat_2 = 0;
// Bitno delovanje NE
rezultat_1 = ~ prva_številka;
rezultat_2 = ~ drugo_številko;
// natisnemo vhodne številke in izhodno vrednost
cout << endl;
prikaz ("Prva številka je =", prva_številka);
prikaz ("~ prva_številka =", rezultat_1);
cout << endl;
// natisnemo vhodne številke in izhodno vrednost
zaslon ("Second Number is =", second_num);
prikaz ("~ številka_sekunde =", rezultat_2);
cout << endl;
vrnitev 0;

Primer-4: Bit-ov operater XOR

Namen tega programa je razložiti, kako deluje operater Bitwise XOR v jeziku C++.

#include
#include
#include
uporaba imenskega prostora std;
// funkcija display ()
prikaz praznine (niz print_msg, int številka)

bitna bitna različica<16> myBitSet (število);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int prva_številka = 7, druga_številka = 9, rezultat = 0;
// Bitno delovanje XOR
rezultat = prva_številka ^ druga_številka;
// natisnemo vhodne številke
cout << endl;
prikaz ("Prva številka je =", prva_številka);
zaslon ("Second Number is =", second_num);
// natisnemo izhodno vrednost
prikaz ("first_num ^ second_num =", rezultat);
cout << endl;
vrnitev 0;

Primer-5: Operator levega prestavljanja v bitnih nastavitvah

Zdaj bomo videli primer operatorja Bitwise Left Shift. V tem programu smo razglasili dve številki, first_num in second_num celoštevilskega tipa. Tu je “first_num” levo premaknjen za en bit, “second_num” pa levo za dva bita.

#include
#include
#include
uporaba imenskega prostora std;
// funkcija display ()
prikaz praznine (niz print_msg, int številka)

bitna bitna različica<16> myBitSet (število);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int prva_številka = 7, druga_številka = 9, rezultat_1 = 0, rezultat_2 = 0;
// Delovanje levega prestavljanja v bitnem položaju
rezultat_1 = prva_številka << 1;
rezultat_2 = drugo_številko << 2;
// natisnemo vhodne številke in izhodno vrednost
cout << endl;
prikaz ("Prva številka je =", prva_številka);
display ("prva_številka << 1     =  ", result_1);
cout << endl;
// natisnemo vhodne številke in izhodno vrednost
zaslon ("Second Number is =", second_num);
display ("druga_številka << 2    =  ", result_2);
cout << endl;
vrnitev 0;

Primer-6: Operater premika v desno

Zdaj bomo videli še en primer za razumevanje operaterja Bitwise Right Shift. Deklarirali smo dve številki, prvo_število in drugo_število celoštevilskega tipa. Tu je "first_num" desno premaknjen za en bit, "second_num" pa desno za dva bita.

#include
#include
#include
uporaba imenskega prostora std;
// funkcija display ()
prikaz praznine (niz print_msg, int številka)

bitna bitna različica<16> myBitSet (število);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int prva_številka = 7, druga_številka = 9, rezultat_1 = 0, rezultat_2 = 0;
// Operacija bit-shift v desno
result_1 = first_num >> 1;
result_2 = second_num >> 2;
// natisnemo vhodne številke in izhodno vrednost
cout << endl;
prikaz ("Prva številka je =", prva_številka);
prikaz ("first_num >> 1 =", result_1);
cout << endl;
// natisnemo vhodne številke in izhodno vrednost
zaslon ("Second Number is =", second_num);
prikaz ("second_num >> 2 =", result_2);
cout << endl;
vrnitev 0;

Primer-7: Nastavi bit

Ta primer želi pokazati, kako nastaviti določen bit z uporabo bitnih operatorjev.

#include
#include
#include
uporaba imenskega prostora std;
// funkcija display ()
prikaz praznine (niz print_msg, int številka)

bitna bitna različica<16> myBitSet (število);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int prva_številka = 7, druga_številka = 9;
// natisnemo vhodno številko - first_num
cout << endl;
prikaz ("Prva številka je =", prva_številka);
// Nastavi 5. bit
first_num | = (1UL << 5);
// Natisni izhod
zaslon ("Set 5th bit of first_num =", first_num);
cout << endl;
// natisnemo vhodno številko - second_num
cout << endl;
display ("Second Number is =", second_num); // Nastavi 6. bit
sekundna številka | = (1UL << 6);
// Natisni izhod
prikaz ("Set 6th bit of second_num =", second_num);
cout << endl;
vrnitev 0;

Primer-8: Počisti bit

Namen tega primera je pokazati, kako počistiti določen bit z uporabo bitnih operatorjev.

#include
#include
#include
uporaba imenskega prostora std;
// funkcija display ()
prikaz praznine (niz print_msg, int številka)

bitna bitna različica<16> myBitSet (število);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int prva_številka = 7, druga_številka = 9;
// natisnemo vhodno številko - first_num
cout << endl;
prikaz ("Prva številka je =", prva_številka);
// Počisti 2. bit
first_num & = ~ (1UL << 2);
// Natisni izhod
display ("Set 2nd bit of first_num =", first_num);
cout << endl;
// natisnemo vhodno številko - second_num
cout << endl;
zaslon ("Second Number is =", second_num);
// Počisti 3. bit
sekundna številka & = ~ (1UL << 3);
// Natisni izhod
zaslon ("Set 3rd bit of second_num =", second_num);
cout << endl;
vrnitev 0;

Zaključek

Bitni operator se uporablja predvsem za manipulacijo posameznih bitov za celoštevilčni in znakovni podatkovni tip. Bitni operater se pogosto uporablja pri razvoju vdelane programske opreme. Torej, če razvijate gonilnik naprave ali sistem, ki je zelo blizu ravni strojne opreme, boste morda želeli uporabiti te bitne operatorje.

Kako namestiti League Of Legends na Ubuntu 14.04
Če ste ljubitelj League of Legends, je to priložnost, da preizkusite League of Legends. Upoštevajte, da LOL podpira PlayOnLinux, če uporabljate Linux....
Namestite najnovejšo strategijo igre OpenRA v Ubuntu Linux
OpenRA je Libre / Free Real Time strateški stroj, ki poustvarja zgodnje igre Westwood, kot je klasična Command & Conquer: Red Alert. Porazdeljeni modi...
Namestite najnovejši Dolphin Emulator za Gamecube & Wii v Linux
Dolphin Emulator vam omogoča igranje izbranih iger Gamecube in Wii na osebnih računalnikih Linux (PC). Dolphin Emulator je prosto dostopen in odprtok...