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:
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 ++:
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 ++:
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.