C ++

C ++ bitvise operatører

C ++ bitvise operatører
I denne artikkelen skal vi diskutere bitvise operatører i C ++ programmeringsspråk. Vi vil se flere arbeidseksempler for å forstå bitvise operasjoner i detalj. I C ++ jobber bitvise operatorer på det enkelte bitnivået.

Kort oversikt over bitvise 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. Relasjonsoperatører
  4. Oppdragsoperatører
  5. Bitvise operatører
  6. Diverse operatører

Alle Bitwise-operatørene jobber på det enkelte bitnivået. Bitvis operator kan bare brukes på datatypene for heltall og tegn. For eksempel, hvis du har en heltallstypevariabel med størrelsen 32 bits, og du bruker bitvis IKKE-operasjon, vil bitvis IKKE-operatør brukes for alle 32 bitene. Så til slutt 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 Sannhetstabell

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

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

Bitvis og sannhetstabell

Bitvis OG-operatør produserer 1 når begge operandene er satt til 1. Her er sannhetstabellen for Bitwise AND-operatøren:

Bit-1 Bit-2 Bit-1 og Bit-2
0 0 0
0 1 0
1 0 0
1 1 1

Bitvis IKKE sannhetstabell

Bitvis opererer IKKE operatøren. Her er sannhetstabellen for Bitwise IKKE-operatør:

Bit-1 ~ Bit-1
0 1
1 0

Bitwise XOR sannhetstabell

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

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

Bitvis venstre skiftoperatør

Bitwise Left Shift-operatør skifter alle bitene igjen med det angitte antallet spesifiserte bits. Hvis du la forskyve alle bitene av dataene med 1, vil de originale dataene bli multiplisert med 2. Tilsvarende, hvis du la skifte alle bitene av dataene med 2, vil de opprinnelige dataene bli multiplisert med 4.

Bitvis høyre skiftoperatør

Bitwise Right Shift-operatør skifter alle bitene rett med det angitte antallet spesifiserte bits. Hvis du rett skifter alle bitene av dataene med 1, blir de opprinnelige dataene delt (heltallsdeling) med 2. Tilsvarende, hvis du høyre skifter alle bitene av dataene med 2, vil de opprinnelige dataene bli delt (heltallsdeling) 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å bitvise operasjoner i C ++:

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

Eksempel 1: Bitvis ELLER operatør

I dette eksempelprogrammet vil vi demonstrere Bitwise OR-operatøren.

#inkludere
#inkludere
#inkludere
bruker navneområde std;
// display () -funksjon
ugyldig visning (streng print_msg, int-nummer)

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

int main ()

int first_num = 7, second_num = 9, result = 0;
// Bitvis ELLER drift
resultat = første_nummer | second_num;
// skriv ut inngangstallene
cout << endl;
display ("First Number is =", first_num);
display ("Second Number is =", second_num);
// skriv ut verdien
display ("first_num | second_num =", result);
cout << endl;
retur 0;

Eksempel 2: Bitvis OG operatør

I dette eksempelprogrammet vil vi illustrere Bitwise AND operator.

#inkludere
#inkludere
#inkludere
bruker navneområde std;
// display () -funksjon
ugyldig visning (streng print_msg, int-nummer)

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

int main ()

int first_num = 7, second_num = 9, result = 0;
// Bitvis OG drift
resultat = første nummer & andre nummer;
// skriv ut inngangstallene
cout << endl;
display ("First Number is =", first_num);
splay ("Second Number is =", second_num);
// skriv ut verdien
display ("first_num & second_num =", result);
cout << endl;
retur 0;

Eksempel 3: Bitvis IKKE operatør

I dette eksempelprogrammet vil vi forstå hvordan Bitwise NOT-operatør fungerer i C++.

#inkludere
#inkludere
#inkludere
bruker navneområde std;
// display () -funksjon
ugyldig visning (streng print_msg, int-nummer)

bitsett<16> myBitSet (nummer);
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;
// Bitvis IKKE drift
resultat_1 = ~ første_nummer;
resultat_2 = ~ sekundnummer;
// skriv ut inngangstall og utgangsverdi
cout << endl;
display ("First Number is =", first_num);
display ("~ first_num =", result_1);
cout << endl;
// skriv ut inngangstall og utgangsverdi
display ("Second Number is =", second_num);
display ("~ second_num =", result_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
bruker navneområde std;
// display () -funksjon
ugyldig visning (streng print_msg, int-nummer)

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

int main ()

int first_num = 7, second_num = 9, result = 0;
// Bitvis XOR-operasjon
resultat = første_nummer ^ andre_nummer;
// skriv ut inngangstallene
cout << endl;
display ("First Number is =", first_num);
display ("Second Number is =", second_num);
// skriv ut verdien
display ("first_num ^ second_num =", result);
cout << endl;
retur 0;

Eksempel 5: Bitvis venstre skiftoperatør

Nå vil vi se eksemplet på Bitwise Left Shift-operatøren. I dette programmet har vi deklarert to tall, first_num og second_num of integer type. Her er "første_nummer" venstre-forskjøvet med en bit, og "andre_nummer" er venstre-forskjøvet med to bits.

#inkludere
#inkludere
#inkludere
bruker navneområde std;
// display () -funksjon
ugyldig visning (streng print_msg, int-nummer)

bitsett<16> myBitSet (nummer);
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;
// Bitvis venstreskiftoperasjon
resultat_1 = første_nummer << 1;
resultat_2 = sekund_nummer << 2;
// skriv ut inngangstall og utgangsverdi
cout << endl;
display ("First Number is =", first_num);
display ("første_nummer << 1     =  ", result_1);
cout << endl;
// skriv ut inngangstall og utgangsverdi
display ("Second Number is =", second_num);
display ("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å Bitwise Right Shift-operatøren. Vi har deklarert to tall, første nummer og andre nummer av heltallstype. Her er "first_num" høyre-skiftet med en bit, og "second_num" er høyre-shifted med to bits.

#inkludere
#inkludere
#inkludere
bruker navneområde std;
// display () -funksjon
ugyldig visning (streng print_msg, int-nummer)

bitsett<16> myBitSet (nummer);
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;
// Bitvis Right Shift-operasjon
resultat_1 = første_nummer >> 1;
resultat_2 = sekundnummer >> 2;
// skriv ut inngangstall og utgangsverdi
cout << endl;
display ("First Number is =", first_num);
display ("first_num >> 1 =", result_1);
cout << endl;
// skriv ut inngangstall og utgangsverdi
display ("Second Number is =", second_num);
display ("second_num >> 2 =", result_2);
cout << endl;
retur 0;

Eksempel 7: Sett bit

Dette eksemplet har til hensikt å vise hvordan du setter en bestemt bit ved hjelp av bitvise operatorer.

#inkludere
#inkludere
#inkludere
bruker navneområde std;
// display () -funksjon
ugyldig visning (streng print_msg, int-nummer)

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

int main ()

int first_num = 7, second_num = 9;
// skriv ut inngangsnummeret - første_nummer
cout << endl;
display ("First Number is =", first_num);
// Sett 5. bit
first_num | = (1UL << 5);
// Utskrift
display ("Set 5th bit of first_num =", first_num);
cout << endl;
// skriv ut inngangsnummeret - second_num
cout << endl;
display ("Second Number is =", second_num); // Sett 6. bit
second_num | = (1UL << 6);
// Utskrift
display ("Set 6th bit of second_num =", second_num);
cout << endl;
retur 0;

Eksempel 8: Fjern bit

Dette eksemplet har til hensikt å vise hvordan du kan fjerne en bestemt bit ved hjelp av bitvise operatorer.

#inkludere
#inkludere
#inkludere
bruker navneområde std;
// display () -funksjon
ugyldig visning (streng print_msg, int-nummer)

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

int main ()

int first_num = 7, second_num = 9;
// skriv ut inngangsnummeret - første_nummer
cout << endl;
display ("First Number is =", first_num);
// Fjern 2. bit
first_num & = ~ (1UL << 2);
// Utskrift
display ("Set 2nd bit of first_num =", first_num);
cout << endl;
// skriv ut inngangsnummeret - second_num
cout << endl;
display ("Second Number is =", second_num);
// Fjern 3. bit
second_num & = ~ (1UL << 3);
// Utskrift
display ("Set 3rd bit of second_num =", second_num);
cout << endl;
retur 0;

Konklusjon

Den bitvise operatøren brukes primært til å manipulere de enkelte bitene for datatype for heltall og tegn. Bitvis operatør er mye brukt i innebygd programvareutvikling. Så hvis du utvikler en enhetsdriver eller et system som er veldig nær maskinvarenivået, kan det være lurt å bruke disse bitvise operatørene.

Mus Kontroller og administrer musebevegelser mellom flere skjermer i Windows 10
Kontroller og administrer musebevegelser mellom flere skjermer i Windows 10
Dual Display Mouse Manager lar deg kontrollere og konfigurere musebevegelse mellom flere skjermer, ved å bremse bevegelsene nær grensen. Windows 10/8,...
Mus WinMouse lar deg tilpasse og forbedre musemarkørenes bevegelse på Windows PC
WinMouse lar deg tilpasse og forbedre musemarkørenes bevegelse på Windows PC
Hvis du vil forbedre standardfunksjonene til musepekeren, bruk freeware WinMouse. Det legger til flere funksjoner som hjelper deg å få mest mulig ut a...
Mus Mus venstreklikknapp fungerer ikke på Windows 10
Mus venstreklikknapp fungerer ikke på Windows 10
Hvis du bruker en dedikert mus med den bærbare eller stasjonære datamaskinen, men museklikk-knappen fungerer ikke på Windows 10/8/7 av en eller annen ...