Die Interpretation von Bitmustern
Uminterpretation
Ein Code könnte einem Bitmuster bestimmte Zahlen zuordnen.
- Natürliche Zahlen
- ●● 3
●○ 2
○● 1
○○ 0
Ein anderer Code könnte einem Bitmuster bestimmte Zeichen zuordnen.
- Zeichen
- ●● D
●○ C
○● B
○○ A
Das Bitmuster eines Zeichens kann dann als Bitmuster einer Zahl uminterpretiert werden.
- Zeichen und Zahlen
- D ●● 3
C ●○ 2
B ○● 1
A ○○ 0
So kann jedem Zeichen eine Zahl (Kennzahl ) zugeordnet werden.
- Zeichen mit Kennzahlen
- D 3
C 2
B 1
A 0
Abstrakte Werte
Oft interessiert man sich nur dafür, welche Werte es gibt, und nicht dafür, wie diese konkret durch ein Bitmuster dargestellt werden. Solche Werte ohne Bitmuster nennen wir auch abstrakte Werte, wenn das Fehlen eines Bitmusters betont werden soll, oder sonst einfach Werte.
- Zahlen
- 3
2
1
0 - Zeichen
- A
B
C
D
Die Interpretation von Bits
Angenommen, wir finden ein Bitmuster.
- Ein vorgefundenes Bitmuster
- ●○
Woher wissen wir dann, welcher Code zur Interpretation heranzuziehen ist?
- Eine mögliche Interpretation
- ●○ C
- Eine andere, ebenfalls mögliche Interpretation
- ●○ 2
Es ist nicht möglich, den richtigen Code, dem Bitmuster selber zu entnehmen!
Der passende Code muß also zusätzlich zum Bitmuster auch noch irgendwo abgespeichert werden.
Hierzu gibt es die Möglichkeit, eine Tabelle der Codes anzulegen.
- Tabelle der Codes
- ● Zahl
- ○ Zeichen
Wir können den Code dann auch noch vor den Daten abspeichern. (Im folgenden trennt ein senkrechter Strich die Information über den Code von den Informationen über den Wert.)
- Das Zeichen „C“
- ○|●○ C
- Die Zahl 2
- ●|●○ 2
Allerdings müssen wir dann immer noch wissen, daß dieses spezielle System verwendet werden soll, um Bitmuster wie „●|●○“ zu interpretieren.
Datentypen als Mittel zur Interpretation
Ein Datentyp ist ein Entität eines Datypenmodells einer Programmiersprache. Das heißt: Die Programmiersprache erklärt, daß es bestimmte Datentypen gibt, beispielsweise durch eine Tabelle der Datentypen.
In einer Programmiersprache wird jedem Bitmuster dann in der Regel ein Datentyp zugeordnet. Dieser Datentyp gibt dann auch den Code an, der zur Interpretation des Bitmusters heranzuziehen ist.
Dynamische Speicherung
Bei der dynamischen Speicherung wird der Datentyp eines Bitmusters zusammen mit diesem abgespeichert.
Diese Art der Speicherung wird als „dynamisch“ bezeichnet, weil der Datentyp (der hier auch als „Laufzeittyp“ bezeichnet wird) während des Ablaufs eines Programms verändert werden kann, indem die entsprechenden Bits verändert werden.
Statische Speicherung
Bei der statischen Speicherung ist der Datentyp eines Bitmusters dem Programm bereits bekannt und muß deshalb nicht noch zusätzlich mit dem Bitmuster zusammen abgespeichert werden. Bei dieser Vorgehensweise kann der Typ dann aber in der Regel nicht während des Programmablaufs verändert werden, daher nennt man sie „statisch“ („nicht veränderlich“)
Objekte
Objekte in Programmiersprachen sind praktisch solche Bitmuster (oder basieren auf solchen Bitmustern). In manchen Programmiersprachen enthalten die Objekte „dynamisch“ zunächst Informationen über ihren Typ und dann über ihren Wert, in anderen „statisch“ nur über ihren Wert.
Grenzen der Informationsdarstellung
Durch eine bestimmte Anzahl von Bits lassen sich Werte darstellen. Mehr Bits erlauben mehr verschiedene Werte, was bei Zahlen den maximal darstellbaren Wert oder die Genauigkeit der Darstellung erhöhen kann. Aber egal, wieviel Bits man verwendet:
Die Anzahl der möglichen Werte (und damit die Größe und/oder Genauigkeit) ist immer begrenzt.
Geschichte
Die Idee der Informationsdarstellung durch Bits geht mindestens auf Francis Bacon (1561 – 1626) zurück, der schrieb:
“a man may expresse the intentions of his minde at any distance ... by objects ... capable of a twofold difference onely ”
Damit hat er vor mehreren Hundert Jahren das Internet vorausgesehen.