<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Logischer_Operator</id>
	<title>Logischer Operator - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Logischer_Operator"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Logischer_Operator&amp;action=history"/>
	<updated>2026-05-21T16:36:36Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Logischer_Operator&amp;diff=223807&amp;oldid=prev</id>
		<title>imported&gt;DaveroDia: /* Beispiele für logische Operatoren */ mathematische Unicode-Zeichen ergänzt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Logischer_Operator&amp;diff=223807&amp;oldid=prev"/>
		<updated>2026-03-26T11:30:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Beispiele für logische Operatoren: &lt;/span&gt; mathematische Unicode-Zeichen ergänzt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Ein &amp;#039;&amp;#039;&amp;#039;Logischer Operator&amp;#039;&amp;#039;&amp;#039; ist eine Funktion, die einen [[Wahrheitswert]] liefert. Bei der zweiwertigen, [[Boolesche Algebra|booleschen Logik]] liefert er also &amp;#039;&amp;#039;wahr&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;falsch,&amp;#039;&amp;#039; bei einer [[Mehrwertige Logik|mehrwertigen Logik]] können auch entsprechend andere Werte geliefert werden. Logische [[Operator (Mathematik)|Operatoren]] können eine beliebige Anzahl an [[Operator (Mathematik)#Operand|Operanden]] haben.&lt;br /&gt;
&lt;br /&gt;
Ein typisches Beispiel für einen [[Boolescher Operator|booleschen logischen Operator]] ist die [[Konjunktion (Logik)|Und-Verknüpfung]]: Sie liefert immer dann &amp;#039;&amp;#039;wahr&amp;#039;&amp;#039;, wenn alle Operanden ebenfalls wahr sind.&lt;br /&gt;
&lt;br /&gt;
Von besonderer Bedeutung sind die logischen Operatoren in der praktischen Anwendung in [[Programmiersprache]]n und in [[Digitaltechnik|digitalen Schaltungen]]. In Programmiersprachen stehen mit Ausnahme des „NOT“-Operators mit nur einem Operanden meist nur Operatoren mit zwei Operanden zur Verfügung. Dafür gehören neben den booleschen Operatoren auch [[Vergleichsoperator]]en zum Standardrepertoire von höheren Programmiersprachen. In der [[Schaltungstechnik]] sind dagegen „UND“/„ODER“-Verknüpfungen mit mehreren Operanden gängig, die durch [[Logikgatter]] oder Reihen- bzw. Parallelschaltung von Schaltern oder [[Relais]] realisiert werden.&lt;br /&gt;
&lt;br /&gt;
== Logische Operatoren in Programmiersprachen ==&lt;br /&gt;
Durch [[logische Verknüpfung]] (meist zweier) logischer Ausdrücke entsteht ein komplexerer logischer Ausdruck. Je nach Art des Verknüpfungsoperators ist der zusammengesetzte Ausdruck zum Beispiel genau dann wahr, wenn &amp;#039;&amp;#039;beide&amp;#039;&amp;#039; verknüpften Ausdrücke wahr sind ([[Konjunktion (Logik)|Und-Verknüpfung]]) oder wenn mindestens einer der verknüpften Ausdrücke wahr ist ([[Disjunktion|Oder-Verknüpfung]]). Von den Junktoren in der [[Aussagenlogik]] unterscheiden sich die logischen Operatoren der Programmiersprachen unter Umständen in der Auswertungsreihenfolge oder in mit zu berücksichtigenden [[#Auswertungsreihenfolge, Kommutativität und Nebeneffekte|Nebeneffekten]].&lt;br /&gt;
&lt;br /&gt;
Hinsichtlich der Art, Anzahl und Schreibweise der logischen Operatoren unterscheiden sich die einzelnen [[Programmiersprache]]n teilweise sehr stark voneinander (siehe Tabelle). Unterschiede gibt es auch hinsichtlich der internen Darstellung der Wahrheitswerte: In den meisten Programmiersprachen wird der Wahrheitswert &amp;#039;&amp;#039;falsch&amp;#039;&amp;#039; als die Zahl 0 dargestellt. Der Wahrheitswert &amp;#039;&amp;#039;wahr&amp;#039;&amp;#039; wird oft als die Zahl&amp;amp;nbsp;1 dargestellt, vielfach wird aber auch jeder von 0 verschiedene Wert als &amp;#039;&amp;#039;wahr&amp;#039;&amp;#039; interpretiert. Eine bemerkenswerte Ausnahme bilden viele [[Kommandozeileninterpreter|Kommandointerpreter]], darunter die verschiedenen [[Unix-Shell]]s, in denen der Erfolg eines ausgeführten Befehls durch den Rückgabewert&amp;amp;nbsp;0, der Misserfolg durch einen von 0 verschiedenen Wert angezeigt wird, der die Art des aufgetretenen Fehlers aufzeigt. In Verallgemeinerung dessen wird in den logischen Ausdrücken dieser Kommandointerpreter der Wert 0 („kein Fehler“) als &amp;#039;&amp;#039;wahr&amp;#039;&amp;#039; interpretiert und jeder von 0 verschiedene Wert („Fehler“) als &amp;#039;&amp;#039;falsch.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Vergleichsoperatoren&amp;#039;&amp;#039;&amp;#039; stellen zwei Werte, etwa numerische Größen, einander gegenüber und liefern in Abhängigkeit vom Ausgang des Vergleichs (größer, kleiner usw.) einen Wahrheitswert.&lt;br /&gt;
&lt;br /&gt;
=== Beispiele für logische Operatoren ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! &amp;lt;!-- leer --&amp;gt; || Operator || Mathematik&lt;br /&gt;
!Python|| Fortran || ABAP || Delphi, Pascal || Visual Basic || C, C++, C#, Java, PHP || Perl || Batch&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;6&amp;quot; | Vergleiche || größer || &amp;lt;math&amp;gt;&amp;gt;&amp;lt;/math&amp;gt;, &amp;gt;&lt;br /&gt;
|&amp;gt;&lt;br /&gt;
| .GT. || GT oder &amp;amp;gt; || &amp;amp;gt; || &amp;amp;gt; || &amp;amp;gt; || &amp;amp;gt;, gt || GTR&lt;br /&gt;
|-&lt;br /&gt;
| kleiner || &amp;lt;math&amp;gt;&amp;lt;&amp;lt;/math&amp;gt;, &amp;lt;&lt;br /&gt;
|&amp;lt;&lt;br /&gt;
| .LT. || LT oder &amp;amp;lt; || &amp;amp;lt; || &amp;amp;lt; || &amp;amp;lt; || &amp;amp;lt;, lt || LSS&lt;br /&gt;
|-&lt;br /&gt;
| größer oder gleich || &amp;lt;math&amp;gt;\ge&amp;lt;/math&amp;gt;, ≥&lt;br /&gt;
|&amp;gt;=&lt;br /&gt;
| .GE. || GE oder &amp;amp;gt;= || &amp;amp;gt;= || &amp;amp;gt;= || &amp;amp;gt;= || &amp;amp;gt;=, ge || GEQ&lt;br /&gt;
|-&lt;br /&gt;
| kleiner oder gleich|| &amp;lt;math&amp;gt;\le&amp;lt;/math&amp;gt;, ≤&lt;br /&gt;
|&amp;lt;=&lt;br /&gt;
| .LE. || LE oder &amp;amp;lt;= || &amp;amp;lt;= || &amp;amp;lt;= || &amp;amp;lt;= || &amp;amp;lt;=, le || LEQ&lt;br /&gt;
|-&lt;br /&gt;
| gleich|| &amp;lt;math&amp;gt;=&amp;lt;/math&amp;gt;, =&lt;br /&gt;
|==, is&lt;br /&gt;
| .EQ. || EQ oder = || = || = || &amp;amp;#61;&amp;amp;#61; || &amp;amp;#61;&amp;amp;#61;, eq || EQU, &amp;amp;#61;&amp;amp;#61;&lt;br /&gt;
|-&lt;br /&gt;
| ungleich|| &amp;lt;math&amp;gt;\ne&amp;lt;/math&amp;gt;, ≠&lt;br /&gt;
|&amp;lt;&amp;gt; &amp;lt;sup&amp;gt;1)&amp;lt;/sup&amp;gt;, !=, is not|| .NE. || NE oder &amp;amp;lt;&amp;amp;gt; || &amp;amp;lt;&amp;amp;gt; || &amp;amp;lt;&amp;amp;gt; || != || !=, ne || NEQ&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot; | Verknüpfungen || Und ([[Konjunktion (Logik)|Konjunktion]]) || &amp;lt;math&amp;gt;\wedge&amp;lt;/math&amp;gt;, ∧&lt;br /&gt;
|&amp;amp;, and, all()&lt;br /&gt;
| .AND. || AND || AND || And, AndAlso&amp;lt;sup&amp;gt;2)&amp;lt;/sup&amp;gt; || &amp;amp;amp;, &amp;amp;amp;&amp;amp;amp; || &amp;amp;&amp;amp;, &amp;amp;, and || &amp;#039;&amp;#039;n.&amp;amp;nbsp;a.&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Oder ([[Disjunktion]]) || &amp;lt;math&amp;gt;\vee&amp;lt;/math&amp;gt;, ∨&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;|, or, any()&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| .OR. || OR || OR || Or, OrElse&amp;lt;sup&amp;gt;2)&amp;lt;/sup&amp;gt; || &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt; || &amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt;, &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;, ^, or || &amp;#039;&amp;#039;n.&amp;amp;nbsp;a.&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| Nicht ([[Negation]]) || &amp;lt;math&amp;gt;\neg&amp;lt;/math&amp;gt;, ¬&lt;br /&gt;
| not&lt;br /&gt;
| .NOT. || NOT || NOT || Not || ~,! || !, ~, not || NOT&lt;br /&gt;
|}&lt;br /&gt;
:&amp;lt;sup&amp;gt;1) in Python 2, inzwischen veraltet&amp;lt;/sup&amp;gt;&lt;br /&gt;
:&amp;lt;sup&amp;gt;2) Neu in .NET-Versionen&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Beispiele für logische Ausdrücke ===&lt;br /&gt;
&lt;br /&gt;
     &amp;#039;&amp;#039;IF a&amp;amp;nbsp;&amp;amp;gt;&amp;amp;nbsp;b THEN&amp;#039;&amp;#039;&lt;br /&gt;
        &amp;#039;&amp;#039;Anweisungen&amp;#039;&amp;#039;&lt;br /&gt;
     &amp;#039;&amp;#039;ENDIF&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall wird bewertet, ob a größer ist als b. Ist die Aussage &amp;#039;&amp;#039;wahr,&amp;#039;&amp;#039; werden die Anweisungen ausgeführt, die mit &amp;#039;&amp;#039;THEN&amp;#039;&amp;#039; eingeleitet werden. Andernfalls werden die Anweisungen übersprungen.&lt;br /&gt;
&lt;br /&gt;
     &amp;#039;&amp;#039;IF i AND j THEN&amp;#039;&amp;#039;&lt;br /&gt;
        &amp;#039;&amp;#039;Anweisungen&amp;#039;&amp;#039;&lt;br /&gt;
     &amp;#039;&amp;#039;ENDIF&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
In diesem Fall wird bewertet, ob i &amp;#039;&amp;#039;wahr&amp;#039;&amp;#039; ist und j &amp;#039;&amp;#039;wahr&amp;#039;&amp;#039; ist. Sind i und j &amp;#039;&amp;#039;wahr,&amp;#039;&amp;#039; werden die Anweisungen ausgeführt, die mit &amp;#039;&amp;#039;THEN&amp;#039;&amp;#039; eingeleitet werden. Ist einer der Werte &amp;#039;&amp;#039;falsch&amp;#039;&amp;#039; (oder beide), werden die Anweisungen übersprungen.&lt;br /&gt;
&lt;br /&gt;
=== Auswertungsreihenfolge, Kommutativität und Nebeneffekte ===&lt;br /&gt;
Die logischen Operatoren einer Programmiersprache sind keine exakte Entsprechung der [[Junktor]]en in der [[Aussagenlogik]], weil bei der Bewertung von Junktoren keine [[Wirkung (Informatik)|Nebeneffekte]] auftreten können. In einer Programmiersprache kann das sehr wohl der Fall sein, wenn z.&amp;amp;nbsp;B. innerhalb des logischen Ausdrucks Funktionen mit Nebeneffekten aufgerufen werden. In diesem Fall spielt die Auswertungsreihenfolge eine Rolle, d.&amp;amp;nbsp;h. das Gesetz der [[Kommutativität]] (z.&amp;amp;nbsp;B. für die [[Konjunktion (Logik)|Konjunktion]]: a ∧ b = b ∧ a) gilt dann nicht, wenn a oder b nicht nur einen Wert, sondern auch eine [[Wirkung (Informatik)|Wirkung]] haben. Aus diesem Grund definieren die meisten Programmiersprachen eine feste Auswertungsreihenfolge für logische Ausdrücke.&lt;br /&gt;
&lt;br /&gt;
Wenn man eine Konjunktion a&amp;amp;nbsp;∧&amp;amp;nbsp;b von links nach rechts auswertet und dabei feststellt, dass schon a falsch ist, weiß man bereits an dieser Stelle und ohne b näher betrachten zu müssen, dass die ganze Konjunktion falsch sein wird. Dieses Wissen kann man zur Optimierung der Laufzeit benutzen, indem man in diesem Fall gänzlich auf die Auswertung von b verzichtet ([[Lazy Evaluation]])&amp;amp;nbsp;– allerdings um den Preis, dass dann ein eventueller [[Wirkung (Informatik)|Effekt]] von b ausbleibt. Aus diesem Grund ist die unkritische [[Compiler#Programmoptimierung|Ausdrucksoptimierung]] ein Problem. Es gibt zwei Möglichkeiten, damit umzugehen: Ausdrücke bzw. Ausdrucksteile mit Nebeneffekten können von der Optimierung ausgenommen, d.&amp;amp;nbsp;h. stets ausgewertet werden; oder aber das frühzeitige Abbrechen der Auswertung logischer Ausdrücke kann exakt in die Sprachspezifikation aufgenommen werden, sodass der Programmierer zumindest genau vorhersagen kann, welche Nebeneffekte in welcher Situation auftreten und welche nicht.&lt;br /&gt;
&lt;br /&gt;
{{Anker|frühzeitigesAbbrechenAuswertung}}Letzteres ist in Programmiersprachen wie [[C (Programmiersprache)|C]], [[C++]] oder [[Java (Programmiersprache)|Java]] der Fall: Hier ist spezifiziert, dass bei der Auswertung einer Konjunktion a ∧ b, in der Schreibweise dieser Sprachen a&amp;amp;nbsp;&amp;amp;&amp;amp;&amp;amp;nbsp;b, die Auswertung von b unterbleibt, wenn bereits a &amp;#039;&amp;#039;falsch&amp;#039;&amp;#039; ist; und dass bei der Auswertung der [[Disjunktion]] a&amp;amp;nbsp;&amp;amp;or;&amp;amp;nbsp;b, in der Schreibweise dieser Sprachen a&amp;amp;nbsp;||&amp;amp;nbsp;b, die Auswertung von b unterbleibt, wenn bereits a &amp;#039;&amp;#039;wahr&amp;#039;&amp;#039; ist. Dies stellt keinen grundsätzlichen Unterschied zu den jeweiligen aussagenlogischen Junktoren dar, wenn die auszuwertenden Teilausdrücke wirkungsfrei sind.&lt;br /&gt;
&lt;br /&gt;
Andere Programmiersprachen wie [[Ada (Programmiersprache)|Ada]] (oder [[C-Sharp|C#]]) bieten sowohl Konjunktionen und Disjunktionen im aussagenlogischen Sinn an („AND“ und „OR“) als auch Operatoren wie das „&amp;amp;&amp;amp;“ bzw. „||“ in C, in Ada „AND THEN“ bzw. „OR ELSE“ genannt.&lt;br /&gt;
&lt;br /&gt;
== Beispiel für einen Logischen Operator in mehrwertiger Logik ==&lt;br /&gt;
Folgendes Beispiel aus der Elektrotechnik entspricht einem logischen Operator mit 10 Operanden in einer 4-wertigen Logik:&lt;br /&gt;
&lt;br /&gt;
An einem [[Bus (Datenverarbeitung)|Bus]] sind 10 Geräte angeschlossen, die jeweils die Wahrheitswerte „high“ (5&amp;amp;nbsp;Volt), „low“ (0&amp;amp;nbsp;Volt) und „Z“ (hochohmig) liefern können. Der Zustand des Busses lässt sich durch folgenden logischen Operator beschreiben:&lt;br /&gt;
&lt;br /&gt;
  O&amp;amp;nbsp;(Gerät1, Gerät2, …, Gerät10):&lt;br /&gt;
    „Kurzschluss“ … wenn mindestens ein Gerät „high“ liefert und mindestens ein Gerät „low“&lt;br /&gt;
    „high“        … wenn mindestens ein Gerät „high“ liefert und kein Gerät „low“&lt;br /&gt;
    „low“         … wenn mindestens ein Gerät „low“ liefert und kein Gerät „high“&lt;br /&gt;
    „hochohmig“   … wenn alle Geräte „hochohmig“ liefern&lt;br /&gt;
&lt;br /&gt;
{{siehe auch|Mehrwertige Logik}}&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[regulärer Ausdruck]]&lt;br /&gt;
* [[Mehrwertige Logik]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Programmiersprachelement]]&lt;br /&gt;
[[Kategorie:Digitale Schaltungstechnik]]&lt;br /&gt;
[[Kategorie:Schaltalgebra]]&lt;br /&gt;
[[Kategorie:Mehrwertige Logik]]&lt;/div&gt;</summary>
		<author><name>imported&gt;DaveroDia</name></author>
	</entry>
</feed>