Wie speichern Computer Daten?

19.04.2025 5 Min. Lesezeit

Eine verständliche Einführung in Datentypen und ihre Repräsentation

Wenn wir mit einem Computer arbeiten, scheint alles selbstverständlich: Texte erscheinen auf dem Bildschirm, Zahlen werden berechnet, Bilder angezeigt. Doch unter der Oberfläche stellt sich eine fundamentale Frage: Wie speichert ein Computer diese Informationen überhaupt?

Um diese Frage zu beantworten, müssen wir einen Schritt zurückgehen und uns anschauen, wie Computer „denken“. Denn im Gegensatz zum Menschen kennt ein Computer keine Buchstaben, keine Zahlen im klassischen Sinne - sondern nur Zustände.


Vom Lichtschalter zum Bit: Die Grundlage aller Daten

Die elementarste Einheit der Information im Computer ist das Bit. Ein Bit kann genau zwei Zustände annehmen:

  • 0 (aus)
  • 1 (an)

Man kann sich das wie einen einfachen Lichtschalter vorstellen: entweder an oder aus. Mehr ist zunächst nicht möglich.

Diese Beschränkung ist kein Nachteil, sondern eine Stärke: Elektronische Schaltungen lassen sich zuverlässig in genau diesen zwei Zuständen betreiben. Alles, was ein Computer speichert oder verarbeitet, basiert letztlich auf langen Ketten solcher Bits.


Von Bits zu Bedeutung: Bytes und Struktur

Ein einzelnes Bit reicht nicht aus, um komplexe Informationen darzustellen. Daher werden Bits zu größeren Einheiten gruppiert. Die wichtigste davon ist das Byte, bestehend aus 8 Bits.

Ein Byte kann somit (2^8 = 256) verschiedene Zustände darstellen. Diese Zustände erhalten Bedeutung durch sogenannte Konventionen: Wir legen fest, welche Bitmuster was bedeuten.

Beispielsweise könnte die Bitfolge

01000001

für den Buchstaben „A“ stehen - aber nur, weil wir uns darauf geeinigt haben.


Zahlen im Computer: Integer

Beginnen wir mit etwas scheinbar Einfachem: ganzen Zahlen, den sogenannten Integern.

Binäre Darstellung

Computer speichern Zahlen nicht im Dezimalsystem (Basis 10), sondern im Binärsystem (Basis 2).

Die Zahl 13 wird damit zu:

13 (dezimal) = 1101 (binär)

Das funktioniert, weil jede Stelle im Binärsystem eine Potenz von 2 repräsentiert:

1101 = 1·8 + 1·4 + 0·2 + 1·1 = 13

Feste Bitbreite

Ein wichtiger Aspekt ist die Bitbreite. Ein Integer mit 8 Bit kann nur Werte zwischen 0 und 255 speichern.

Typische Größen sind:

  • 8 Bit (1 Byte)
  • 16 Bit
  • 32 Bit
  • 64 Bit

Je mehr Bits, desto größer der darstellbare Zahlenbereich.

Negative Zahlen (kurzer Überblick)

Um auch negative Zahlen darzustellen, verwendet man meist das sogenannte Zweierkomplement. Dabei wird das höchste Bit zur Vorzeicheninformation - aber in einer sehr eleganten Weise, die Addition weiterhin einfach erlaubt.

Das bedeutet: Dieselben Bits können sowohl positive als auch negative Zahlen codieren, abhängig von der Interpretation.


Zeichenketten: Strings

Während Integer Zahlen repräsentieren, stehen Strings für Text.

Zeichen als Zahlen

Ein Computer speichert Zeichen nicht direkt als „A“, „B“, „C“. Stattdessen wird jedes Zeichen auf eine Zahl abgebildet. Diese Abbildung nennt man Zeichencodierung.

Ein bekanntes Beispiel ist ASCII:

Zeichen ASCII-Code
A 65
B 66
a 97

Das bedeutet:
Ein String wie "Hi" wird intern zu einer Folge von Zahlen:

"H" → 72 → 01001000
"i" → 105 → 01101001

Der String ist also letztlich einfach eine Sequenz von Bytes.

Moderne Codierungen

ASCII reicht für Englisch, aber nicht für die Vielfalt menschlicher Sprachen. Daher werden heute meist Codierungen wie UTF-8 verwendet, die auch Umlaute, Emojis und viele Schriftsysteme abdecken.

Ein wichtiges Verständnis hier:
Ein String ist keine primitive Einheit im Speicher - sondern eine strukturierte Abfolge von Zahlen, interpretiert als Zeichen.


Mehr als nur Zahlen: Weitere primitive Datentypen

Neben Integern und Strings gibt es weitere fundamentale Datentypen, die auf denselben Grundprinzipien aufbauen.

Boolean

Der einfachste Datentyp nach dem Bit ist der Boolean. Er beschreibt genau zwei Zustände:

  • true (wahr)
  • false (falsch)

Intern wird das meist als einzelnes Bit oder als Byte gespeichert.


Floating-Point-Zahlen (kurze Einführung)

Während Integer nur ganze Zahlen speichern, benötigen wir für viele Anwendungen auch Kommazahlen (z. B. 3.14).

Diese werden als sogenannte Floating-Point-Zahlen gespeichert. Dabei nutzt man eine Darstellung ähnlich der wissenschaftlichen Notation:

3.14 ≈ 3.14 × 10^0

Im Computer wird dies in eine Binärform übersetzt und in mehrere Teile zerlegt:

  • Vorzeichen
  • Exponent
  • Mantisse

Dies ist ein komplexes Thema mit vielen Fallstricken (z. B. Rundungsfehler), weshalb es einen eigenen Artikel verdient - den wir anschließend separat behandeln.


Der entscheidende Punkt: Datentypen sind Interpretation

Bis hierhin haben wir verschiedene Datentypen kennengelernt. Doch nun kommt die wichtigste Erkenntnis dieses Artikels:

Ein Computer speichert keine „Integer“, „Strings“ oder „Floats“. Er speichert nur Bits.

Was ein Bitmuster bedeutet, hängt ausschließlich davon ab, wie es interpretiert wird.


Ein und dieselben Bits, unterschiedliche Bedeutung

Nehmen wir folgendes Byte:

01000001

Je nach Interpretation kann es bedeuten:

  • als Integer: 65
  • als ASCII-Zeichen: “A”
  • als Teil eines Float: ein Fragment einer Kommazahl

Das ist kein Zufall, sondern das Grundprinzip moderner Computersysteme.


Typisierung: Wie Programme Bedeutung schaffen

Programmiersprachen bringen Struktur in dieses Chaos, indem sie Datentypen definieren.

Wenn du in einer Programmiersprache schreibst:

x = 42

Dann passiert im Hintergrund:

  • Speicher wird reserviert
  • Die Bitdarstellung von 42 wird abgelegt
  • Der Typ „Integer“ wird zugeordnet

Diese Typinformation hilft dem Programm (und oft auch dem Compiler), die Bits korrekt zu interpretieren.

Speicherorganisation: Ein kurzer Ausblick

Im Arbeitsspeicher eines Computers liegen diese Daten in langen linearen Bereichen. Jede Information hat eine Adresse. Ein String wie “Hi” könnte im Speicher so aussehen:

Adresse Wert
1000 72
1001 105

Programme greifen über Adressen auf Daten zu und interpretieren sie entsprechend ihres Datentyps.

Fazit: Alles ist Bit - Bedeutung entsteht im Kopf (oder im Code)

Computer speichern keine „objektiven“ Daten wie Zahlen oder Text. Stattdessen speichern sie neutrale Bitmuster, denen wir Bedeutung zuweisen.

Integer sind binär codierte Zahlen
Strings sind Sequenzen von Zahlen, interpretiert als Zeichen
Booleans sind einzelne Zustände
Floats sind komplexere Kodierungen für Näherungen von Zahlen

Das Verständnis dieser Grundlagen ist entscheidend, um zu begreifen:

  • warum es zu Rundungsfehlern kommt,
  • warum Speicher begrenzt ist,
  • und warum Datentypen in Programmiersprachen so wichtig sind.

Als nächstes Thema: Wie genau funktionieren Fließkommazahlen - und warum sind sie oft ungenau?