Der oder-Operator in C++

Suraj P 12 Oktober 2023
  1. der logische ODER-Operator in C++
  2. der bitweise ODER-Operator in C++
  3. Fazit
Der oder-Operator in C++

Dieser Artikel erklärt ODER-Operatoren in C++ und ihre Anwendungsfälle. Wie jede andere Programmiersprache hat C++ ein logisches ODER und ein bitweises ODER; Schauen wir sie uns nacheinander an.

der logische ODER-Operator in C++

Wir verwenden einen logischen Operator, um zwei oder mehr Operanden/Ausdrücke zu vergleichen und true oder false Werte zurückzugeben. Diese sind in Entscheidungsszenarien nützlich.

Logisches ODER wird durch || dargestellt.

Syntax:

expression1 || expression2

Der logische ODER-Operator || kehrt zurück:

  1. true - wenn mindestens ein Operand oder Ausdruck wahr ist.
  2. false – genau dann, wenn alle Operanden falsch sind.

Die Wahrheitstabelle des logischen ODER ||.

A und B sind Operanden.

A B A||B
F F F
F T T
T F T
T T T

Wir können nur sehen, wenn beide Operanden false sind; wir erhalten die Ausgabe als false. In C oder C++ ist false null und true ein beliebiger Wert ungleich null; Im Allgemeinen wird es durch die Ganzzahl 1 dargestellt.

Beispiel:

Mal sehen, wie das logische ODER bei der Entscheidungsfindung verwendet wird. Stellen Sie sich eine Situation vor, in der ein Benutzer einen Kleinbuchstaben eingibt und wissen möchte, ob es sich um einen Vokal oder einen Konsonanten handelt.

#include <iostream>
using namespace std;

int main() {
  char ch;
  cin >> ch;

  if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u') {
    cout << "It's is a VOWEL.";
  } else
    cout << "It's a consonant";
}

Wenn die Eingabe z ist, sind alle OR-Bedingungen innerhalb der if-Anweisung false, sie wird als false ausgewertet und die if-Bedingung schlägt fehl. Dann wird der else-Block ausgeführt.

Ausgabe:

z
It's a consonant

Eine interessante Eigenschaft des logischen ODER ist, dass wenn der linke Teil true ist, der rechte Teil nicht ausgewertet wird, weil jetzt sowieso der ganze Ausdruck wahr ist.

Bedeutung in expression1||expression2 Wenn expression1 true ist, wird expression2 nicht ausgewertet.

Beispielcode:

#include <iostream>
using namespace std;

int main() {
  int a = 10;
  int b = (a = a > 5 ? 25 : 0) || 0;

  cout << "Value of a " << a << endl;
  cout << "Value of b " << b << endl;

  // part two
  int x = 9;
  int c = (x = 0) || (x = 6789);

  cout << "Value of x " << x << endl;
  cout << "Value of c " << c << endl;
}

Ausgabe:

Value of a 25
Value of b 1
Value of x 6789
Value of c 1

Erläuterung: (a=a>5?25:0) wird als true ausgewertet, weil a grösser als 5 ist und 25 a zugeordnet ist, und in C++ anders als 0(false), alle Werte gelten als true.

Da der linke Teil des logischen ODER true ist, wird die rechte Seite nicht ausgewertet; der Gesamtausdruckswert ist true, also 1, und wird b zugewiesen.

Nun Teil zwei des Programms c = (x=0) || (x=6789), LHS x=0 bedeutet false, also wird RHS x=6789 ausgewertet, da jeder andere Wert als Null true ist, wird der gesamte Ausdruck jetzt wahr, und 1 ist c zugeordnet.

der bitweise ODER-Operator in C++

Ein einzelner vertikaler Strich | steht für das bitweise ODER. Der Hauptunterschied zwischen logischen und bitweisen Operatoren besteht darin, dass das Ergebnis logischer Operatoren (&&, || und !) entweder 0(false) oder 1(true) ist, aber das Ergebnis von Ein bitweiser Operator ist ein ganzzahliger Wert.

Das | (bitweises OR) in C oder C++ nimmt zwei Zahlen als Operanden und macht OR an jedem Bit von zwei Zahlen und gibt das Ergebnis zurück.

Beispielcode:

#include <iostream>
using namespace std;

int main() {
  int a = 2;
  int b = 4;

  int c = a || b;  // logical OR

  int d = a | b;  // bitwise OR

  cout << "Value of c " << c << endl;
  cout << "value of d " << d << endl;
}

Ausgabe:

Value of c 1
value of d 6

Erläuterung: Für a||b, a=2, was ein Wert ungleich Null ist, wird als true bewertet, also wird der Wert von c zu true.

Für a|b müssen wir zuerst a und b ins Binärformat umwandeln und dann ODER auf jedes Bit anwenden, a = 010 und b = 100 binär, und wenn wir anwenden ODER auf jedem Bit erhalten wir als Ausgabe eine 6, die der Variablen d zugewiesen wird.

 0 1 0   this is a=2
 1 0 0    this is b=4
-------
 1 1 0  //this is 6 in decimal
-------

Fazit

In diesem Artikel haben wir etwas über logische und bitweise ODER-Operatoren gelernt.

Wir haben verstanden, dass das logische ODER für die Entscheidungsfindung verwendet wird und alle Operanden/Ausdrücke ungleich Null als 1(true) betrachtet werden, während beim bitweisen ODER die Operation auf jedes Bit angewendet wird und ein ganzzahliger Wert ist als Ausgabe zurückgegeben.

Autor: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub

Verwandter Artikel - C++ Operator