Kurzer Überblick über bitweise Operatoren
Ein Operator ist ein Symbol, das den Compiler anweist, bestimmte mathematische oder logische Operationen auszuführen. Es gibt verschiedene Arten von Operatoren in C ++, wie z. B.:
Alle bitgewiehenen Betreiber arbeiten auf der einzelnen Bitstufe. Der bitweise Operator kann nur auf die Ganzzahl- und Zeichendatentypen angewendet werden. Wenn Sie beispielsweise eine Ganzzahl -Typvariable mit der Größe von 32 Bits haben und bitgewise, nicht den Betrieb anwenden, wird der bitgewiete Bediener für alle 32 Bit angewendet. Also werden alle 32 Bit in der Variablen umgekehrt.
In C ++ sind sechs verschiedene Bitgewise -Operatoren erhältlich:
Bitweise oder Wahrheitstabelle
Der Bitweise oder der Bediener produziert 1, wenn mindestens ein Operand auf 1 eingestellt ist. Hier ist die Wahrheitstabelle für Bitgewise oder Operator:
Bit-1 | Bit-2 | Bit-1 | Bit-2 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Bitweise und Wahrheitstabelle
Bitweise und Operator produzieren 1, wenn beide Operanden auf 1 eingestellt sind. Hier ist die Wahrheitstabelle für Bitgewise und Operator:
Bit-1 | Bit-2 | Bit-1 & Bit-2 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Bitweise nicht Wahrheitstabelle
Bitgewise nicht Operator umdreht den Operanden. Hier ist die Wahrheitstabelle für Bitgewise nicht Operator:
Bit-1 | ~ Bit-1 |
---|---|
0 | 1 |
1 | 0 |
Bitwise Xor Wahrheitstabelle
Bitwise XOR -Operator produziert 1 If und nur wenn einer der Operanden auf 1 eingestellt ist. Hier ist die Wahrheitstabelle für Bitgewise und Operator:
Bit-1 | Bit-2 | Bit-1 ^ bit-2 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Bitgewise links Shift Operator
Bitgewise Link Shift Operator verschiebt alle Bits, die durch die angegebene Anzahl angegebener Bits zurückgelassen werden. Wenn Sie alle Datenbits um 1 verändert haben, werden die ursprünglichen Daten mit 2 multipliziert. In ähnlicher Weise werden die Originaldaten mit 4 multipliziert, wenn Sie alle Daten mit 2 um 2 verschieben, um 4 zu multiplizieren.
Bitgewise Right Shift Operator
Bitwise Right Shift Operator verschiebt alle Bits rechts um die angegebene Anzahl angegebener Bits. Wenn Sie die rechte Verschiebung aller Datenbits um 1 um 1 verschieben, werden die ursprünglichen Daten durch 2 geteilt (Ganzzahlabteilung). In ähnlicher Weise werden die ursprünglichen Daten (Ganzzahl Division) durch 4 geteilt, wenn Sie alle Daten um 2 verändern, um 4 zu verändern.
Beispiele
Da wir nun das grundlegende Konzept der bitweisen Operationen verstanden haben, sollten wir uns einige Beispiele ansehen, die Ihnen helfen, die bitweisen Operationen in C ++ zu verstehen:
Die Beispiel-7 und 8 dienen zum Demonstration der realen Verwendung von bitgewiehenen Operatoren in der C ++-Programmiersprache.
Beispiel 1: Bitweise oder Bediener
In diesem Beispielprogramm werden wir den Bitgewiete oder den Operator demonstrieren.
#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
// display () Funktion
void display (String print_msg, int nummer)
Bitset<16> mybitset (number);
Cout << print_msg;
Cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;
int main ()
int first_num = 7, Second_num = 9, Ergebnis = 0;
// bitweise oder operativ
result = first_num | Second_num;
// Drucken Sie die Eingangsnummern
Cout << endl;
display ("erste nummer ist =", first_num);
display ("zweite Nummer ist =", Second_num);
// Den Ausgangswert drucken
display ("first_num | second_num =", Ergebnis);
Cout << endl;
Rückkehr 0;
Beispiel-2: Bitweise und Bediener
In diesem Beispielprogramm werden wir bitweise und Bediener veranschaulichen.
#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
// display () Funktion
void display (String print_msg, int nummer)
Bitset<16> mybitset (number);
Cout << print_msg;
Cout << myBitSet.to_string() << " (" << myBitSet.to_ulong() << ") " << endl;
int main ()
int first_num = 7, Second_num = 9, Ergebnis = 0;
// bitweise und operativ
result = First_num & Second_num;
// Drucken Sie die Eingangsnummern
Cout << endl;
display ("erste nummer ist =", first_num);
Splay ("zweite Zahl ist =", Second_num);
// Den Ausgangswert drucken
display ("first_num & second_num =", result);
Cout << endl;
Rückkehr 0;
Beispiel-3: bitweise nicht operator
In diesem Beispielprogramm werden wir verstehen, wie bitweise nicht der Bediener in C funktioniert++.
#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
// display () Funktion
void display (String print_msg, int nummer)
Bitset<16> mybitset (number);
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;
// bitweise nicht operativ
result_1 = ~ first_num;
result_2 = ~ Second_num;
// Drucken Sie die Eingangsnummern und den Ausgabewert aus
Cout << endl;
display ("erste nummer ist =", first_num);
display ("~ first_num =", result_1);
Cout << endl;
// Drucken Sie die Eingangsnummern und den Ausgabewert aus
display ("zweite Nummer ist =", Second_num);
display ("~ Second_num =", result_2);
Cout << endl;
Rückkehr 0;
Beispiel-4: Bitwise XOR-Operator
Dieses Programm soll erklären, wie der bitweise XOR -Operator in C funktioniert++.
#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
// display () Funktion
void display (String print_msg, int nummer)
Bitset<16> mybitset (number);
Cout << print_msg;
Cout << myBitSet.to_string() <<
"(" << myBitSet.to_ulong() << ") " << endl;
int main ()
int first_num = 7, Second_num = 9, Ergebnis = 0;
// Bitwise XOR -Operation
result = first_num ^ Second_num;
// Drucken Sie die Eingangsnummern
Cout << endl;
display ("erste nummer ist =", first_num);
display ("zweite Nummer ist =", Second_num);
// Den Ausgangswert drucken
display ("first_num ^ second_num =", Ergebnis);
Cout << endl;
Rückkehr 0;
Beispiel-5: Bitgewise Link Shift Operator
Jetzt werden wir das Beispiel des bitgewiehenen linken Schaltoperators sehen. In diesem Programm haben wir zwei Zahlen deklariert, First_num und Second_num des Ganzzahltyps. Hier wird das "First_num" nach einem Bit nach links verschoben, und das "Second_num" wird von zwei Bits nach links verschoben.
#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
// display () Funktion
void display (String print_msg, int nummer)
Bitset<16> mybitset (number);
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;
// Bitgewise Link Shift Operation
result_1 = first_num << 1;
result_2 = second_num << 2;
// Drucken Sie die Eingangsnummern und den Ausgabewert aus
Cout << endl;
display ("erste nummer ist =", first_num);
display ("first_num << 1 = ", result_1);
Cout << endl;
// Drucken Sie die Eingangsnummern und den Ausgabewert aus
display ("zweite Nummer ist =", Second_num);
display ("Second_num << 2 = ", result_2);
Cout << endl;
Rückkehr 0;
Beispiel-6: Bitgewise Right Shift Operator
Jetzt werden wir ein weiteres Beispiel sehen, um den bitgewiehenen Right Shift -Operator zu verstehen. Wir haben zwei Zahlen deklariert, First_num und Second_num des Ganzzahltyps. Hier ist das "First_num" von einem Bit rechts verändert, und das "Second_num" wird von zwei Bits rechts verschoben.
#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
// display () Funktion
void display (String print_msg, int nummer)
Bitset<16> mybitset (number);
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;
// Bitwise Right Shift Operation
result_1 = first_num >> 1;
result_2 = second_num >> 2;
// Drucken Sie die Eingangsnummern und den Ausgabewert aus
Cout << endl;
display ("erste nummer ist =", first_num);
display ("first_num >> 1 =", result_1);
Cout << endl;
// Drucken Sie die Eingangsnummern und den Ausgabewert aus
display ("zweite Nummer ist =", Second_num);
display ("Second_num >> 2 =", result_2);
Cout << endl;
Rückkehr 0;
Beispiel-7: Bit einstellen
In diesem Beispiel soll zeigen, wie ein bestimmtes Bit mit Bitwise -Operatoren festgelegt wird.
#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
// display () Funktion
void display (String print_msg, int nummer)
Bitset<16> mybitset (number);
Cout << print_msg;
Cout << myBitSet.to_string() << " (" <<
mybitset.to_ulong () << ") " << endl;
int main ()
int first_num = 7, Second_num = 9;
// Drucken Sie die Eingangsnummer - First_num
Cout << endl;
display ("erste nummer ist =", first_num);
// 5. Bit einstellen
First_num | = (1ul << 5);
// Ausgangsausgabe
display ("Setzen Sie das 5. Bit von First_num =", First_num);
Cout << endl;
// Drucken Sie die Eingangsnummer - Second_num
Cout << endl;
display ("zweite Nummer ist =", Second_num);
// 6. Bit einstellen
Second_num | = (1ul << 6);
// Ausgangsausgabe
display ("6. Bit von Second_num =", Second_num);
Cout << endl;
Rückkehr 0;
Beispiel-8: klares Bit
In diesem Beispiel soll zeigen.
#enthalten
#enthalten
#enthalten
Verwenden von Namespace STD;
// display () Funktion
void display (String print_msg, int nummer)
Bitset<16> mybitset (number);
Cout << print_msg;
Cout << myBitSet.to_string() << " (" <<
mybitset.to_ulong () << ") " << endl;
int main ()
int first_num = 7, Second_num = 9;
// Drucken Sie die Eingangsnummer - First_num
Cout << endl;
display ("erste nummer ist =", first_num);
// 2. Bit löschen
First_num & = ~ (1ul << 2);
// Ausgangsausgabe
display ("2nd Bit von First_num =", First_num);
Cout << endl;
// Drucken Sie die Eingangsnummer - Second_num
Cout << endl;
display ("zweite Nummer ist =", Second_num);
// 3. Bit löschen
Second_num & = ~ (1ul << 3);
// Ausgangsausgabe
display ("Setzen Sie das 3. Bit von Second_num =", Second_num);
Cout << endl;
Rückkehr 0;
Abschluss
Der bitweise Operator wird hauptsächlich verwendet, um die einzelnen Bits für Ganzzahl- und Zeichendatentyp zu manipulieren. Der bitweise Operator wird stark in der eingebetteten Softwareentwicklung verwendet. Wenn Sie also einen Gerätetreiber oder ein System in der Nähe der Hardwareebene entwickeln, möchten Sie diese bitgewiehenen Operatoren möglicherweise verwenden.