True und False für &&-Logik und || Logiktabelle

Lesezeit: 5 Minuten

Alis Benutzeravatar
Ali

Tabelle wahr/falsch für C-Sprache

Ich habe von einer Tabelle true false für die C-Sprache für und && oder || gehört ist eine Art Mathematik, für die sie sagen, ob wahr + wahr = wahr und falsch + wahr = falsch

Ich bin nur etwas verwirrt und habe versucht, die Recherche durchzuführen, konnte aber nichts in der Tabelle finden

Ich möchte diese Tabelle nur für meine Notizen haben, da ich mehr in C-Sprache machen werde

wenn mich jemand zu der Website oder den Ressourcen bringen könnte, wo sie dies näher erklären


Ich habe meine ursprüngliche Frage bearbeitet, um sie zu einer Notiz für mein eigenes Studium zu machen. Danke @thiton für die tollen Referenzen und den Rest für eine tolle Antwort/Ressourcen.

Logisches UND (&&)

false && false: false

false && true: false

true && false: false

true && true: true

Logisches ODER (||)

false || false: false

false || true: true

true || false: true

true || true: true

Logisches NICHT (!)

!false: true

!true: false

  • Sie können wirklich keine Wahrheitstabelle für UND und ODER für einen einzelnen booleschen Wert erstellen? Probiert es zumindest aus…

    – Kerrek SB

    28. September 2011 um 13:20 Uhr


  • “true” und “false” wurden als Makros mit C99 eingeführt. true ergibt 1 und false 0, also true+false = 1+0 = 1 (== true), ich bin mir nicht sicher, ob true+true gültig ist. Da dies 1+1 ist, ist dies kein gültiger Wert für _Bool. Habe den Standard aber nicht zur Hand.

    – Johannes

    28. September 2011 um 13:23 Uhr

  • Hier ist etwas, das gut zu wissen ist, obwohl es in der Programmierung wenig praktischen Nutzen hat: Da falsch zu 0 und wahr zu 1 ausgewertet wird, können Sie (aber nicht) && durch * und || ersetzen mit +. In ähnlicher Weise entspricht AND der Schnittmenge in der Mengenlehre und OR entspricht der Vereinigung. All dies war sehr nützlich im Elektronikdesign von Oldtimern, in den Tagen vor Mikrocontrollern, als sie mathematische Funktionen mit Gattern implementierten. Programmierer können immer noch auf seltsamen Legacy-Code stoßen, wo sie Multiplikation und Addition verwenden, um logische Operationen durchzuführen und umgekehrt.

    – Ludin

    28. September 2011 um 13:59 Uhr

Sie meinen wahrscheinlich eine Wahrheitstabelle für die booleschen Operatoren, die das Ergebnis der üblichen booleschen Operationen (&&, ||) anzeigt. Diese Tabelle ist nicht sprachspezifisch, sondern findet sich z hier.

  • Ja, das wurde in meiner Klasse gelehrt und ich habe wirklich danach gesucht! 😀 Vielen Dank, ich werde diese Notiz sicher in meinen Notizen haben

    – Ali

    28. September 2011 um 13:25 Uhr

Du denkst an boolsche Algebra.

Wahrheitswerte können mit a beschrieben werden boolsche Algebra. Der Artikel enthält auch Tabellen für and und or. Dies soll Ihnen den Einstieg erleichtern oder noch mehr Verwirrung stiften.

Ich denke, Sie fragen danach boolsche Algebra die die Ausgabe verschiedener Operationen beschreibt, die an booleschen Variablen ausgeführt werden. Schauen Sie sich einfach den Artikel auf Wikipedia an.

Ich möchte die bereits guten Antworten ergänzen:

Die Symbole ‘+’, ‘*’ und ‘-‘ werden manchmal in einigen älteren Lehrbüchern als Abkürzung für die logischen Operatoren OR,∨ und AND,∧ und NOT,¬ in der Boolschen Algebra verwendet. In C/C++ verwenden wir natürlich “and”,”&&” und “or”,”||” und nicht”,”!”.

Achtung: “true + true” wird ausgewertet 2 in C/C++ über die interne Darstellung von wahr und falsch als 1 und 0 und die implizite Umwandlung in int!

int main ()
{
  std::cout <<  "true - true = " << true - true << std::endl;
// This can be used as signum function:
// "(x > 0) - (x < 0)" evaluates to +1 or -1 for numbers.
  std::cout <<  "true - false = " << true - false << std::endl;
  std::cout <<  "false - true = " << false - true << std::endl;
  std::cout <<  "false - false = " << false - false << std::endl << std::endl;

  std::cout <<  "true + true = " << true + true << std::endl;
  std::cout <<  "true + false = " << true + false << std::endl;
  std::cout <<  "false + true = " << false + true << std::endl;
  std::cout <<  "false + false = " << false + false << std::endl << std::endl;

  std::cout <<  "true * true = " << true * true << std::endl;
  std::cout <<  "true * false = " << true * false << std::endl;
  std::cout <<  "false * true = " << false * true << std::endl;
  std::cout <<  "false * false = " << false * false << std::endl << std::endl;

  std::cout <<  "true / true = " << true / true << std::endl;
  //  std::cout <<  true / false << std::endl; ///-Wdiv-by-zero
  std::cout <<  "false / true = " << false / true << std::endl << std::endl;
  //  std::cout <<  false / false << std::endl << std::endl; ///-Wdiv-by-zero

  std::cout <<  "(true || true) = " << (true || true) << std::endl;
  std::cout <<  "(true || false) = " << (true || false) << std::endl;
  std::cout <<  "(false || true) = " << (false || true) << std::endl;
  std::cout <<  "(false || false) = " << (false || false) << std::endl << std::endl;

  std::cout <<  "(true && true) = " << (true && true) << std::endl;
  std::cout <<  "(true && false) = " << (true && false) << std::endl;
  std::cout <<  "(false && true) = " << (false && true) << std::endl;
  std::cout <<  "(false && false) = " << (false && false) << std::endl << std::endl;

}

Erträge :

true - true = 0
true - false = 1
false - true = -1
false - false = 0

true + true = 2
true + false = 1
false + true = 1
false + false = 0

true * true = 1
true * false = 0
false * true = 0
false * false = 0

true / true = 1
false / true = 0

(true || true) = 1
(true || false) = 1
(false || true) = 1
(false || false) = 0

(true && true) = 1
(true && false) = 0
(false && true) = 0
(false && false) = 0

1415110cookie-checkTrue und False für &&-Logik und || Logiktabelle

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy