Mathematische Operatoren
Inhalt
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 |
(x+y) |
Addiert zwei Zahlen |
|
x |
(x-y) |
Subtrahiert zwei Zahlen |
|
x |
(x*y) |
Addiert zwei Zahlen |
|
x |
(x/y) |
Subtrahiert zwei Zahlen |
|
x |
(x%y) |
Addiert zwei Zahlen |
|
x |
(x**y) |
Subtrahiert zwei Zahlen |
Es steht auch eine Kurzschreibweise für die arithmetischen Operatoren zur Verfügung.
Bemerkung
Operator |
Entsprechung |
---|---|
x |
x |
x |
x |
x |
x |
x |
x |
x |
x |
Die Funktionsweise der arithmetischen Operatoren haben wir schon kennengelernt und soll deshalb hier nicht weiter behandelt werden.
Bitweise Operatoren¶
Bemerkung
Python |
Beispiel |
Bedeutung |
---|---|---|
|
x |
Bitweises UND von x und y |
`` |
x `` y |
Bitweises nicht ausschließendes ODER von x und y |
|
x |
Bitweises ausschließendes ODER von x und y |
|
|
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 |
x |
x |
x |
x |
x |
x |
x |
x |
x |
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 |
|
|
exp |
true/false |
Wahr wenn |
OR |
|
|
exp1 |
true/false |
Wahr wenn exp1 order exp1 wahr ist. |
NOT |
|
|
not |
true/false |
Negiert den Ausdruck |
CONTAINTS |
|
||||
IDENTITY |
=== |
|
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.