Mastodon Mastodon

Werte lassen sich auf einer kontinuierlichen Skala darstellen. Wir nennen diese Werte Reelle Zahlen, wenn wir jeden beliebigen Wert damit definieren können. Tatsächlich sagt die mathematische Definition, dass es eine wichtige Eigenschaft der Reellen Zahlen ist, dass zwischen zwei unterschiedlichen Werten beliebige weitere unterschiedliche Werte liegen können.

Kleines “Fun-Fact” am Rande: Was ist der Unterschied zwischen 0,9 und 1? Es gibt keinen: Das ist wirklich mathematisch exakt das Gleiche. Warum? Weil eben zwischen 0,9 und 1 keine Zahl mehr sein kann. Und wenn es dazwischen keine gibt, müssen die beiden Zahlen gleich sein; eben wegen der Definition der Reellen Zahlen von oben.

Wenn wir nun die Werte mit dem Computer* verarbeiten wollen, müssen wir sie irgendwie digitalisieren. Wir haben schon Algebra-Systeme wie GNU Octave kennengelernt, mit denen man symbolisch rechnen kann. Aber meist wollen wir doch am Ende Zahlen stehen haben.

*) Mancher wird sich vielleicht noch an Analog-Rechner erinnern. Aber diese sind völlig aus der Mode gekommen und wir werden sie hier nicht weiter betrachten.

Computer legen Werte mit einer endlichen Anzahl von Ziffern im Binärsystem ab. Das bedeutet, man kann eine Zahl wie π nicht exakt speichern. Diese abgestufte Ablage der Werte nennt man diskret. Es gibt also zwischen zwei möglichen Werte immer eine Lücke. Um diese Lücke möglichst klein zu halten, macht man die Anzahl der Ziffern möglichst groß. Heute üblich sind Zahlen bis 80 Bit. Nutzt man davon 16 Bit für den Exponenten und 64 für die Mantisse, so kann man sich die möglichen Stellen im Dezimalsystem mit dem Logarithmus ausrechnen:

log2 216 / log2 10 ~= 16 / 3,3 ~= 5  Stellen für den Exponenten

log2 264 / log2 10 ~= 64 / 3,3 ~= 19  Stellen für die Mantisse

Das sollte wohl für die meisten Fälle reichen. Die Details dazu sind im Standard IEEE 754 geregelt.

Logische Operationen

Rechnen, so wie wir das üblicherweise auch im Alltag machen, ist das eine was wir mit Werten im Computer machen können. Aber wir wollen auch Entscheidungen treffen. Das macht man mit den Operatoren die der Ire George Boole entdeckt hat. Sie werden daher auch Boole’sche Operationen genannt und der Datentyp mit dem man das Ergebnis so einer Operation speichern kann wird oft Bool oder Boolean genannt. Die bekanntesten Operationen heißen Und und Oder. Das klingt aus der Alltagssprache vertraut. Aber man muss aufpassen, dass die Bedeutung der logischen Operatoren präzise definiert ist. Wenn man in der Alltagssprache jemand vor die Wahl stellt “Willst Du den Bus nehmen oder gehen wir zu Fuß?”, dann wird man wohl vernünftigerweise annehmen, dass er sich für eins von beiden entscheiden muss. Das logische Oder dagegen würde auch beides gleichzeitig zulassen, was hier wohl keinen Sinn machen würde. In der formalen Logik, wie das auch genannt wird, gibt es für jeden Fall der logischen Verknüpfung eine eigene Operation. Hier wäre das Exklusive Oder das richtige.

Das besondere an der Bool’schen Logik ist nun, dass man damit rechnen kann. Daher wird sie auch Bool’sche Algebra genannt. Es sind Operatoren die mit binären Zahlen funktionieren. Wir rechnen also mit einzelnen Bits. Üblicherweise definiert man so eine Operation mit zwei Variablen A und B und schreibt das ganze in einer so genannten Wahrheitstafel auf.

A  B  UND
0  0   0
0  1   0
1  0   0
1  1   1

In der Spalte A und B wird quasi mit einer zwei-stelligen Binärzahl gezählt. In der Spalte UND steht, welche Kombination die Verknüpfung UND erfüllt. Wenn man mit Bit-Werten im Computer arbeitet, wird man meist wie hier mit 0 und 1 arbeiten. Wenn dagegen der Aspekt der formalen Logik im Vordergrund nimmt man besser Wahr und Falsch. Beschreibt man die Schaltzustände in der digitalen Elektronik, nimmt man gern High und Low. Generell wird gern mit englischen Begriffen gearbeitet.

Fasst man alle möglichen Operationen in einer Wahrheitstafel zusammen, erhält man sozusagen das “Einmaleins” der Bool’schen Algebra. Das könnte man sich nun wieder so vorstellen als ob man mit 4 stellen einer binären Zahl gezählt hätte. Die Reihenfolge wäre dann aber sehr unintuitiv. Dazu sind in diesen 16 möglichen Operatoren auch die so genannten pathologischen Fälle dabei, dass das Ergebnis immer 0 oder immer 1 ist.

Teilen