Mathematische Operatoren

Viele Programmiersprachen beinhalten mathematische Operatoren, welche in arithmetische Operatoren, bitweise Operatoren und logische Operatoren unterteilt werden können.

Tipp

Die mathematischen Operation kommen ursprünglich aus der Mathematik und Logik. Dort ist die Bedeutung exakt definiert und die Funktionsweise ist vielen Programmiersprachen gleich. Python überlädt diese Operatoren für andere Datentypen. Zum Beispiel können String mit ‚text‘ + ‚text‘ zusammengefügt werden.

Arithmetische Operatoren

Bemerkung

Python

Beispiel

Resultat

Bedeutung

+

x + y

(x+y)

Addiert zwei Zahlen

-

x - y

(x-y)

Subtrahiert zwei Zahlen

*

x * y

(x*y)

Addiert zwei Zahlen

/

x / y

(x/y)

Subtrahiert zwei Zahlen

%

x % y

(x%y)

Addiert zwei Zahlen

**

x ** y

(x**y)

Subtrahiert zwei Zahlen

Es steht auch eine Kurzschreibweise für die arithmetischen Operatoren zur Verfügung.

Bemerkung

Operator

Entsprechung

x += y

x = x + y

x -= y

x = x - y

x *= y

x = x * y

x % y

x = x % y

x ** y

x = x ** y

Die Funktionsweise der arithmetischen Operatoren haben wir schon kennengelernt und soll deshalb hier nicht weiter behandelt werden.

Bitweise Operatoren

Bemerkung

Python

Beispiel

Bedeutung

&

x & y

Bitweises UND von x und y

``

x `` y

Bitweises nicht ausschließendes ODER von x und y

^

x ^ y

Bitweises ausschließendes ODER von x und y

~

~ x

Bitweises ausschließendes ODER von x und y

<<

x << n

Bitverschiebung um n Stellen nach links

>>

x >> n

Bitverschiebung um n Stellen nach rechts

Wie bei den arithmetischen Operatoren gibt es auch eine kompakte Schreibweise.

Bemerkung

Operator

Entsprechung

x &= y

x = x & y

x .= y

x = x . y

x ^= y

x = x ^ y

x <<= y

x = x << y

x >>= y

x = x >> y

Die Bitweisen Operatoren sollten in jeden Fall verstanden werden, gerade um diese gegenüber den Logik Operatoren abzugrenzen.

Bitweise &

Das bitweise UND & zweier Zahlen wird gebildet, indem beide Zahlen in die Binärdarstellung gebracht und Bit für Bit verknüpft werden. Das Ergebnis hat in der Binärdastellung immer eine 0 wenn einer der zwei ursprüngliche Zahlen eine 0 beinhalten. Nur wenn beide Zahlen eine 1 beinhalten, hat die resultierende Zahl auch eine 1.

Operator

Dual

Dezimal

0010

2

&

0011

3

——

0010

2

Wir können diese Funktionsweise auch direkt in Python nachvollziehen.

print(" " + "Binär", "Dezimal")
print(" " + bin(2)," " + str(2))
print("&" + bin(3)," " + str(3))
print(" " + bin(2&3)," " + str(2&3))
 Binär Dezimal
 0b10  2
&0b11  3
 0b10  2

Bitweise |

Das bitweise ODER | zweier Zahlen wird gebildet, indem beide Zahlen in die Binärdarstellung gebracht und Bit für Bit verknüpft werden. Das Ergebnis hat in der Binärdastellung immer eine 1 wenn einer der zwei ursprüngliche Zahlen eine 1 beinhalten. Nur wenn beide Zahlen eine 0 beinhalten, hat die resultierende Zahl auch eine 0.

Operator

Dual

Dezimal

0010

2

.

0011

3

——

0011

3

print(" " + "Binär", "Dezimal")
print(" " + bin(2)," " + str(2))
print("&" + bin(3)," " + str(3))
print(" " + bin(2|3)," " + str(2|3))
 Binär Dezimal
 0b10  2
&0b11  3
 0b11  3

Logische Operatoren

Bemerkung

Operator

C++

Python

Beispiel

Resultat

Bedeutung

AND

&&

and

exp and exp2

true/false

Wahr wenn exp1 und exp2 wahr ist.

OR

.

or

exp1 or exp2

true/false

Wahr wenn exp1 order exp1 wahr ist.

NOT

!

not

not exp

true/false

Negiert den Ausdruck exp

CONTAINTS

in

IDENTITY

===

is

Warnung

In Python werden Wörter statt Symbole verwendet. Also and statt &&, or statt ||, not statt !.

False and False
False
False and True
False
True and True
True

Vergleich & und and

Wir wollen und den Unterschied zwischen & und and verstehen.

2 & 3
2

Der bitweise Operator liefert also 2.

2 and 3
3

Der logische Operator liefert dagegen 3.

Was basiert hier? Starten wir mit dem bitweisen &. Mit bin() bekommen wir die Binäre Darstellung der Zahlen.

print(bin(2))
print(bin(3))
0b10
0b11

Wenn wir die Zahlen

0010
0011

addieren erhalten wir

0010

als Ergebnis was in der Dezimaldarstellung wieder die 2 ergibt.

bin(2 & 3)
'0b10'
int(bin(2 & 3),2)
2

Der logische Operator dagegen liefert bei einer wahren logischen Aussage immer die letzte Teilaussage. Dabei werden alle Zahlen verschieden von 0 als Wahr aufgefasst.

2 and 3 and 4
4

Ist dageben eine Teilaussage 0, so ist die gesamte Aussage 0.

2 and 0 and 4
0
2 and False and 4
False

Tipp

Wir können in Python also die Aussagenlogik einfach anwenden. Die Aussagenlogik spielt zum Beispiel in der Schaltungstechnik eine große Rolle.