Kort oversigt over bitvise operatører
En operator er et symbol, der instruerer kompilatoren om at udføre bestemte matematiske eller logiske operationer. Der er flere typer operatører i C ++, såsom:
- Aritmetiske operatører
- Logiske operatører
- Relationelle operatører
- Opgaveoperatører
- Bitvise operatører
- Diverse operatører
Alle Bitwise-operatører arbejder på det enkelte bitniveau. Den bitvise operator kan kun anvendes på heltal og karakterdatatyper. For eksempel, hvis du har en heltalstypevariabel med størrelsen på 32 bit, og du anvender bitvis IKKE-operation, vil bitvis IKKE-operatoren blive anvendt på alle 32 bit. Så til sidst vil alle de 32 bits i variablen blive omvendt.
Der er seks forskellige bitvise operatører er tilgængelige i C ++:
- Bitvis ELLER [repræsenteret som “|”]
- Bitvis OG [repræsenteret som “&”]
- Bitvis IKKE [repræsenteret som “~”]
- Bitvis XOR [repræsenteret som “^”]
- Bitvis venstre skift [repræsenteret som “<<”]
- Bitvis højre skift [repræsenteret som ">>"]
Bitvis ELLER sandhedstabel
Bitwise OR-operatøren producerer 1, når mindst en operand er indstillet til 1. Her er sandhedstabellen 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 sandhedstabel
Bitvis OG-operator producerer 1, når begge operander er indstillet til 1. Her er sandhedstabellen 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 sandhedstabel
Bitvis operatør IKKE inverterer operanden. Her er sandhedstabellen for Bitwise NOT-operatør:
Bit-1 | ~ Bit-1 |
---|---|
0 | 1 |
1 | 0 |
Bitwise XOR Sandhedstabel
Bitwise XOR-operatør producerer 1 hvis og kun hvis en af operanderne er indstillet til 1. Her er sandhedstabellen for Bitwise AND-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
Bitwise Left Shift-operator skifter alle bits tilbage med det specificerede antal specificerede bits. Hvis du venstre skifter alle bitene af dataene med 1, bliver de originale data ganget med 2. Tilsvarende, hvis du forlod skifter alle bitene af dataene med 2, bliver de originale data ganget med 4.
Bitvis højre skiftoperatør
Bitwise Right Shift-operator skifter alle bits til højre med det angivne antal specificerede bits. Hvis du højre skifter alle bitene af dataene med 1, deles de originale data (heltal) med 2. Tilsvarende, hvis du højre skifter alle bitene af dataene med 2, deles de originale data (heltal) med 4.
Eksempler
Nu, da vi har forstået det grundlæggende koncept for bitvise operationer, så lad os se på et par eksempler, som hjælper dig med at forstå de bitvise operationer 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øjre skiftoperatør
- Eksempel 7: Indstil bit
- Eksempel 8: Ryd bit
Eksemplet 7 og 8 er til at demonstrere den virkelige verdens brug af bitvise operatører i C ++ programmeringssprog.
Eksempel 1: Bitvis ELLER operatør
I dette eksempelprogram vil vi demonstrere Bitwise OR-operatøren.
#omfatte#omfatte
#omfatte
ved hjælp af namespace std;
// display () funktion
ugyldig visning (streng print_msg, int-nummer)
bitsæt<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;
// udskriv inputnumrene
cout << endl;
display ("First Number is =", first_num);
display ("Second Number is =", second_num);
// udskriv outputværdien
display ("first_num | second_num =", resultat);
cout << endl;
returnere 0;
Eksempel 2: Bitvis OG operatør
I dette eksempelprogram illustrerer vi Bitwise OG operator.
#omfatte#omfatte
#omfatte
ved hjælp af namespace std;
// display () funktion
ugyldig visning (streng print_msg, int-nummer)
bitsæt<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 & andet nummer;
// udskriv inputnumrene
cout << endl;
display ("First Number is =", first_num);
splay ("Andet tal er =", andet_num);
// udskriv outputværdien
display ("first_num & second_num =", result);
cout << endl;
returnere 0;
Eksempel 3: Bitvis IKKE operatør
I dette eksempelprogram vil vi forstå, hvordan Bitwise NOT-operatøren fungerer i C++.
#omfatte#omfatte
#omfatte
ved hjælp af namespace std;
// display () funktion
ugyldig visning (streng print_msg, int-nummer)
bitsæt<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 = ~ sekund_nummer;
// udskriv inputnumrene og outputværdien
cout << endl;
display ("First Number is =", first_num);
display ("~ first_num =", result_1);
cout << endl;
// udskriv inputnumrene og outputværdien
display ("Second Number is =", second_num);
display ("~ second_num =", result_2);
cout << endl;
returnere 0;
Eksempel 4: Bitvis XOR-operatør
Dette program har til hensigt at forklare, hvordan Bitwise XOR-operatøren fungerer i C++.
#omfatte#omfatte
#omfatte
ved hjælp af namespace std;
// display () funktion
ugyldig visning (streng print_msg, int-nummer)
bitsæt<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-drift
resultat = første_num ^ andet_num;
// udskriv inputnumrene
cout << endl;
display ("First Number is =", first_num);
display ("Second Number is =", second_num);
// udskriv outputværdien
display ("first_num ^ second_num =", resultat);
cout << endl;
returnere 0;
Eksempel 5: Bitvis venstre skiftoperatør
Nu vil vi se eksemplet på Bitwise Left Shift-operatøren. I dette program har vi deklareret to tal, first_num og second_num af heltalstypen. Her er "first_num" venstre-forskudt med en bit, og "second_num" er venstre-forskudt med to bits.
#omfatte#omfatte
#omfatte
ved hjælp af namespace std;
// display () funktion
ugyldig visning (streng print_msg, int-nummer)
bitsæt<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 Venstre Shift-operation
resultat_1 = første_nummer << 1;
resultat_2 = sekund_nummer << 2;
// udskriv inputnumrene og outputværdien
cout << endl;
display ("First Number is =", first_num);
display ("første_nummer << 1 = ", result_1);
cout << endl;
// udskriv inputnumrene og outputværdien
display ("Second Number is =", second_num);
display ("second_num << 2 = ", result_2);
cout << endl;
returnere 0;
Eksempel 6: Bitvis højre skiftoperatør
Nu ser vi et andet eksempel for at forstå Bitwise Right Shift-operatøren. Vi har deklareret to tal, first_num og second_num af heltalstypen. Her forskydes "første_num" med en bit, og "andet_nummer" er højre-forskudt med to bit.
#omfatte#omfatte
#omfatte
ved hjælp af namespace std;
// display () funktion
ugyldig visning (streng print_msg, int-nummer)
bitsæt<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-operation
resultat_1 = første_nummer >> 1;
result_2 = second_num >> 2;
// udskriv inputnumrene og outputværdien
cout << endl;
display ("First Number is =", first_num);
display ("first_num >> 1 =", result_1);
cout << endl;
// udskriv inputnumrene og outputværdien
display ("Second Number is =", second_num);
display ("second_num >> 2 =", result_2);
cout << endl;
returnere 0;
Eksempel 7: Indstil bit
Dette eksempel har til hensigt at vise, hvordan man indstiller en bestemt bit ved hjælp af bitvise operatorer.
#omfatte#omfatte
#omfatte
ved hjælp af namespace std;
// display () funktion
ugyldig visning (streng print_msg, int-nummer)
bitsæt<16> myBitSet (nummer);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;
int main ()
int first_num = 7, second_num = 9;
// udskriv inputnummeret - first_num
cout << endl;
display ("First Number is =", first_num);
// Indstil 5. bit
first_num | = (1UL << 5);
// Udskriv output
display ("Set 5th bit of first_num =", first_num);
cout << endl;
// udskriv inputnummeret - second_num
cout << endl;
display ("Second Number is =", second_num); // Indstil 6. bit
second_num | = (1UL << 6);
// Udskriv output
display ("Set 6th bit of second_num =", second_num);
cout << endl;
returnere 0;
Eksempel 8: Ryd bit
Dette eksempel har til hensigt at vise, hvordan man rydder en bestemt bit ved hjælp af bitvise operatorer.
#omfatte#omfatte
#omfatte
ved hjælp af namespace std;
// display () funktion
ugyldig visning (streng print_msg, int-nummer)
bitsæt<16> myBitSet (nummer);
cout << print_msg;
cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;
int main ()
int first_num = 7, second_num = 9;
// udskriv inputnummeret - first_num
cout << endl;
display ("First Number is =", first_num);
// Ryd 2. bit
first_num & = ~ (1UL << 2);
// Udskriv output
display ("Set 2nd bit of first_num =", first_num);
cout << endl;
// udskriv inputnummeret - second_num
cout << endl;
display ("Second Number is =", second_num);
// Ryd 3. bit
second_num & = ~ (1UL << 3);
// Udskriv output
display ("Set 3rd bit of second_num =", second_num);
cout << endl;
returnere 0;
Konklusion
Den bitvise operator bruges primært til at manipulere de enkelte bits til heltal og karakterdatatype. Den bitvise operatør bruges stærkt til indbygget softwareudvikling. Så hvis du udvikler en enhedsdriver eller et system meget tæt på hardwareniveauet, kan du måske bruge disse bitvise operatører.