C ++ Bitgewise -Operatoren

C ++ Bitgewise -Operatoren
In diesem Artikel werden wir Bitwise -Operatoren in der C ++ - Programmiersprache diskutieren. Wir werden mehrere Arbeitsbeispiele sehen, um bitweise Operationen im Detail zu verstehen. In C ++ arbeiten die bitweisen Betreiber auf der einzelnen Bitpegel.

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

  1. Rechenzeichen
  2. Logische Operatoren
  3. Relationale Operatoren
  4. Zuordnungsbetreiber
  5. Bitgewise -Operatoren
  6. Verschiedene

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:

  1. Bitweise oder [als „|“ dargestellt]
  2. Bitweise und [als „&“ dargestellt]
  3. Bitweise nicht [als „~“ dargestellt]
  4. Bitweise xor [dargestellt als "^"]
  5. Bitweise linke Verschiebung [dargestellt als “<<”]
  6. Bitweise rechte Verschiebung [dargestellt als ">>"]

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:

  • Beispiel 1: Bitweise oder Bediener
  • Beispiel-2: Bitweise und Bediener
  • Beispiel-3: bitweise nicht operator
  • Beispiel-4: Bitwise XOR-Operator
  • Beispiel-5: Bitgewise Link Shift Operator
  • Beispiel-6: Bitgewise Right Shift Operator
  • Beispiel-7: Bit einstellen
  • Beispiel-8: klares Bit

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.