C ++ bitvise operatører

C ++ bitvise operatører
I denne artikkelen skal vi diskutere bitvis operatører på programmeringsspråket C ++. Vi vil se flere arbeidseksempler for å forstå bitvis operasjoner i detalj. I C ++ jobber de bitvise operatørene på det individuelle bitnivået.

Kort oversikt over bitvis operatører

En operatør er et symbol som instruerer kompilatoren om å utføre visse matematiske eller logiske operasjoner. Det er flere typer operatører i C ++, for eksempel:

  1. Aritmetiske operatører
  2. Logiske operatører
  3. Relasjonelle operatører
  4. Oppdragsoperatører
  5. Bitvis operatører
  6. MISC -operatører

Alle bitvise operatører jobber på individnivå. Bitvis operatøren kan bare brukes på heltall og karakterdatatyper. For eksempel, hvis du har en heltallstypevariabel med størrelsen på 32 biter og du bruker bitvis ikke operasjon, vil ikke bitvis ikke operere bli brukt for alle 32 bits. Så etter hvert vil alle de 32 bitene i variabelen bli omvendt.

Det er seks forskjellige bitvise operatører som er tilgjengelige i C ++:

  1. Bitvis eller [representert som “|”]
  2. Bitvis og [representert som “&”]
  3. Bitvis ikke [representert som "~"]
  4. Bitvis xor [representert som “^”]
  5. Bitvis venstre skift [representert som “<<”]
  6. Bitvis høyre skift [representert som “>>”]

Bitvis eller sannhetstabellen

Bitvis eller operatøren produserer 1 når minst en operand er satt til 1. Her er sannhetstabellen for bitvis eller operatør:

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

Bitvis og sannhetsbord

Bitvis og operatøren produserer 1 når begge operandene er satt til 1. Her er sannhetstabellen for bitvis og operatør:

Bit-1 Bit-2 Bit-1 & Bit-2
0 0 0
0 1 0
1 0 0
1 1 1

Bitvis ikke sannhetstabell

Bitvis ikke operatøren inverterer operanden. Her er sannhetstabellen for bitwise ikke operatør:

Bit-1 ~ Bit-1
0 1
1 0

Bitvis xor sannhetstabell

Bitvis XOR -operatør produserer 1 hvis, og bare hvis, en av operandene er satt til 1. Her er sannhetstabellen for bitvis og operatør:

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

Bitvis venstre skiftoperatør

Bitvis venstre skiftoperatør skifter alle bitene som er igjen av det spesifiserte antallet spesifiserte biter. Hvis du forlot skift alle bitene av dataene med 1, vil de opprinnelige dataene bli multiplisert med 2. Tilsvarende, hvis du forlot skift alle bitene av dataene med 2, vil de opprinnelige dataene bli multiplisert med 4.

Bitvis høyre skiftoperatør

Bitvis høyre skiftoperatør forskyver alle bitene rett ved det spesifiserte antallet spesifiserte biter. Hvis du riktig skifter alle bitene i dataene med 1, vil de opprinnelige dataene bli delt (heltallsavdeling) med 2. Tilsvarende, hvis du riktig skifter alle bitene av dataene med 2, vil de opprinnelige dataene bli delt (Heltalldivisjon) med 4.

Eksempler

Nå, siden vi har forstått det grunnleggende konseptet med bitvise operasjoner, la oss se på et par eksempler, som vil hjelpe deg å forstå de bitvise operasjonene i C ++:

  • Eksempel 1: Bitvis eller operatør
  • Eksempel-2: Bitvis og operatør
  • Eksempel-3: Bitvis ikke operatør
  • Eksempel-4: Bitvis XOR-operatør
  • Eksempel-5: Bitvis venstre skiftoperatør
  • Eksempel-6: Bitvis høyre skiftoperatør
  • Eksempel-7: sett bit
  • Eksempel-8: Klar bit

Eksemplet-7 og 8 er for å demonstrere den virkelige bruken av bitvis operatører i C ++ programmeringsspråket.

Eksempel 1: Bitvis eller operatør

I dette eksempelprogrammet vil vi demonstrere bitvis eller operatør.

#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
// display () -funksjon
void display (streng print_msg, int -nummer)

bitsset<16> MyBiteset (nummer);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, andre_num = 9, resultat = 0;
// bitvis eller drift
Resultat = første_num | Second_num;
// Skriv ut inngangsnumrene
cout << endl;
display ("første nummer er =", first_num);
display ("andre nummer er =", andre_num);
// Skriv ut utgangsverdien
display ("first_num | Second_num =", resultat);
cout << endl;
retur 0;

Eksempel-2: Bitvis og operatør

I dette eksempelprogrammet vil vi illustrere bitvis og operatør.

#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
// display () -funksjon
void display (streng print_msg, int -nummer)

bitsset<16> MyBiteset (nummer);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, andre_num = 9, resultat = 0;
// Bitvis og drift
Resultat = first_num & second_num;
// Skriv ut inngangsnumrene
cout << endl;
display ("første nummer er =", first_num);
splay ("andre nummer er =", andre_num);
// Skriv ut utgangsverdien
display ("first_num & second_num =", resultat);
cout << endl;
retur 0;

Eksempel-3: Bitvis ikke operatør

I dette eksempelprogrammet vil vi forstå hvordan bitvis ikke operatør fungerer i C++.

#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
// display () -funksjon
void display (streng print_msg, int -nummer)

bitsset<16> MyBiteset (nummer);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, andre_num = 9, resultat_1 = 0, resultat_2 = 0;
// Bitvis ikke operasjon
Resultat_1 = ~ first_num;
Resultat_2 = ~ Second_num;
// Skriv ut inngangsnumrene og utgangsverdien
cout << endl;
display ("første nummer er =", first_num);
display ("~ first_num =", resultat_1);
cout << endl;
// Skriv ut inngangsnumrene og utgangsverdien
display ("andre nummer er =", andre_num);
display ("~ Second_num =", resultat_2);
cout << endl;
retur 0;

Eksempel-4: Bitvis XOR-operatør

Dette programmet har til hensikt å forklare hvordan Bitwise XOR -operatøren fungerer i C++.

#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
// display () -funksjon
void display (streng print_msg, int -nummer)

bitsset<16> MyBiteset (nummer);
cout << print_msg;
cout << myBitSet.to_string() <<
"(" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, andre_num = 9, resultat = 0;
// Bitvis XOR -operasjon
resultat = first_num ^ andre_num;
// Skriv ut inngangsnumrene
cout << endl;
display ("første nummer er =", first_num);
display ("andre nummer er =", andre_num);
// Skriv ut utgangsverdien
display ("first_num ^ Second_num =", resultat);
cout << endl;
retur 0;

Eksempel-5: Bitvis venstre skiftoperatør

Nå vil vi se eksemplet på den bitvis venstre skiftoperatøren. I dette programmet har vi erklært to tall, First_num og Second_Num of Integer Type. Her blir "First_num" -skiftet av en bit, og "Second_num" blir stått av to biter.

#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
// display () -funksjon
void display (streng print_msg, int -nummer)

bitsset<16> MyBiteset (nummer);
cout << print_msg;
cout << myBitSet.to_string() <<
"(" << myBitSet.to_ulong() << ") " << endl;

int main ()

int first_num = 7, andre_num = 9, resultat_1 = 0, resultat_2 = 0;
// Bitvis venstre skiftoperasjon
Resultat_1 = first_num << 1;
resultat_2 = andre_num << 2;
// Skriv ut inngangsnumrene og utgangsverdien
cout << endl;
display ("første nummer er =", first_num);
display ("first_num << 1 = ", result_1);
cout << endl;
// Skriv ut inngangsnumrene og utgangsverdien
display ("andre nummer er =", andre_num);
skjerm ("Second_num << 2 = ", result_2);
cout << endl;
retur 0;

Eksempel-6: Bitvis høyre skiftoperatør

Nå vil vi se et annet eksempel for å forstå den bitvis høyre skiftoperatøren. Vi har erklært to tall, first_num og andre_num av heltallstype. Her er "First_num" rettskiftet av en bit, og "Second_num" er rettskiftet av to biter.

#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
// display () -funksjon
void display (streng print_msg, int -nummer)

bitsset<16> MyBiteset (nummer);
cout << print_msg;
cout << myBitSet.to_string() << " (" <<
MyBiteset.to_ulong () << ") " << endl;

int main ()

int first_num = 7, andre_num = 9, resultat_1 = 0, resultat_2 = 0;
// Bitvis høyre skiftoperasjon
Resultat_1 = first_num >> 1;
resultat_2 = andre_num >> 2;
// Skriv ut inngangsnumrene og utgangsverdien
cout << endl;
display ("første nummer er =", first_num);
display ("first_num >> 1 =", resultat_1);
cout << endl;
// Skriv ut inngangsnumrene og utgangsverdien
display ("andre nummer er =", andre_num);
display ("Second_num >> 2 =", resultat_2);
cout << endl;
retur 0;

Eksempel-7: sett bit

Dette eksemplet har til hensikt å vise hvordan du kan angi en bestemt bit ved hjelp av bitvis operatører.

#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
// display () -funksjon
void display (streng print_msg, int -nummer)

bitsset<16> MyBiteset (nummer);
cout << print_msg;
cout << myBitSet.to_string() << " (" <<
MyBiteset.to_ulong () << ") " << endl;

int main ()

int first_num = 7, andre_num = 9;
// Skriv ut inngangsnummeret - first_num
cout << endl;
display ("første nummer er =", first_num);
// Sett 5. bit
first_num | = (1ul << 5);
// Utskriftsutgang
display ("set 5th bit of first_num =", first_num);
cout << endl;
// Skriv ut inngangsnummeret - Second_Num
cout << endl;
display ("andre nummer er =", andre_num);
// Sett 6. bit
Second_num | = (1Ul << 6);
// Utskriftsutgang
Display ("Sett 6. bit av Second_num =", Second_num);
cout << endl;
retur 0;

Eksempel-8: Klar bit

Dette eksemplet har til hensikt å vise hvordan du kan fjerne en bestemt bit ved hjelp av bitvis operatører.

#inkludere
#inkludere
#inkludere
ved hjelp av navneområdet STD;
// display () -funksjon
void display (streng print_msg, int -nummer)

bitsset<16> MyBiteset (nummer);
cout << print_msg;
cout << myBitSet.to_string() << " (" <<
MyBiteset.to_ulong () << ") " << endl;

int main ()

int first_num = 7, andre_num = 9;
// Skriv ut inngangsnummeret - first_num
cout << endl;
display ("første nummer er =", first_num);
// klar 2. bit
first_num & = ~ (1ul << 2);
// Utskriftsutgang
display ("Sett 2. bit av first_num =", first_num);
cout << endl;
// Skriv ut inngangsnummeret - Second_Num
cout << endl;
display ("andre nummer er =", andre_num);
// klar 3. bit
Second_num & = ~ (1Ul << 3);
// Utskriftsutgang
Display ("Sett 3. bit av Second_num =", Second_Num);
cout << endl;
retur 0;

Konklusjon

Bitvis operatør brukes først og fremst til å manipulere de enkelte bitene for heltall og karakterdatatype. Bitvis operatøren er sterkt brukt i innebygd programvareutvikling. Så hvis du utvikler en enhetsdriver eller et system veldig nær maskinvarenivået, kan det være lurt å bruke disse bitvis operatørene.