Datenrepräsentation

Aus dev.kaibel.net
Zur Navigation springen Zur Suche springen

Datenrepräsentation

Unter Datenrepräsentation versteht man die Art und Weise, wie Informationen in einem Computersystem intern dargestellt, gespeichert, verarbeitet und übertragen werden. Sie bildet die Grundlage für jedes Software- und Hardwaresystem, da Daten nur korrekt verwendet werden können, wenn ihre Struktur und Bedeutung eindeutig definiert sind.

Ziele der Datenrepräsentation

Die Datenrepräsentation verfolgt folgende Ziele:

  • Eindeutigkeit: Daten müssen eindeutig interpretierbar sein.
  • Effizienz: Speicher- und Rechenaufwand sollen minimiert werden.
  • Kompatibilität: Daten sollen zwischen Systemen austauschbar sein.
  • Genauigkeit: Repräsentationen sollen Informationsverluste möglichst vermeiden.

Numerische Daten

Zahlen werden in Computern binär dargestellt, da digitale Schaltungen mit zwei Zuständen (0 und 1) arbeiten.

Ganzzahlen (Integer)

Ganzzahlen werden als Binärzahlen gespeichert, typischerweise in fester Bitlänge.

Typ (C) Speichergröße Wertebereich (Beispiel)
`int8_t` 1 Byte −128 bis +127
`int32_t` 4 Byte −2.147.483.648 bis +2.147.483.647
`uint16_t` 2 Byte 0 bis 65.535

Die Darstellung negativer Zahlen erfolgt meist über das Zweierkomplement.

Gleitkommazahlen (Floating Point)

Für reelle Zahlen wird der IEEE 754-Standard verwendet.

Typ (C) Format Genauigkeit
`float` 32 Bit (Single Precision) ~7 Dezimalstellen
`double` 64 Bit (Double Precision) ~15 Dezimalstellen

Aufbau einer IEEE 754 Gleitkommazahl:

[Vorzeichen][Exponent][Mantisse]

Zeichen und Text

Zeichen werden über Zeichencodes dargestellt.

ASCII

  • 7-Bit-Code, stellt grundlegende englische Zeichen dar.
  • Beispiel: `'A'` → 65 (dezimal).

Unicode / UTF-8

Unicode ermöglicht die Darstellung nahezu aller Sprachen und Symbole. UTF-8 ist die gebräuchlichste Speicherform:

  • Variabel von 1 bis 4 Bytes pro Zeichen.
  • Rückwärtskompatibel zu ASCII.

Beispiel:

"A" → 0x41
"Ä" → 0xC3 0x84

Zusammengesetzte Datenstrukturen

Komplexere Informationen werden durch Kombination einfacher Datentypen aufgebaut.

  • Arrays: Mehrere Werte gleichen Typs.
  • Strukturen (struct): Gruppierte heterogene Daten.
  • Zeiger: Speichern Speicheradressen.
  • Objekte: Daten + zugehörige Funktionen (in OOP).

Beispiel in C

struct Person {
    char name[50];
    int alter;
};

Binäre und Textbasierte Datenformate

Daten können in binärer oder textueller Form gespeichert werden.

Binäre Formate

  • Kompakt und effizient
  • Nicht ohne Kenntnisse interpretierbar
  • Beispiel: Protokolle, Bildformate (PNG, MP3)

Textbasierte Formate

  • Menschlich lesbar, leicht austauschbar
  • Mehr Speicherbedarf
  • Beispiele:

JSON XML CSV

Endianess

Endianess beschreibt die Reihenfolge, in der Bytes gespeichert werden.

Format Beschreibung
Little Endian Niederwertiges Byte zuerst (x86-Prozessoren).
Big Endian Höherwertiges Byte zuerst (Netzwerkprotokolle).

Beispiel (32-Bit Hexwert: `0x12345678`):

Little Endian: 78 56 34 12
Big Endian:    12 34 56 78

Datenrepräsentation in Netzwerken

Für die Kommunikation zwischen Systemen sind eindeutige Formate notwendig.

Wichtige Konzepte:

  • XDR (External Data Representation) – sprach-/plattformunabhängige Datenbeschreibung
  • Protocol Buffers – kompakte binäre Serialisierung (z. B. in gRPC)
  • JSON – leicht lesbares textbasiertes Format für APIs

Herausforderungen

  • Informationsverlust: z. B. Rundungsfehler bei Gleitkommazahlen.
  • Inkompatibilität: unterschiedliche Endianess oder Zeichencodierungen.
  • Speichergrenzen: Datenformate müssen Speicher und Genauigkeit abwägen.

Zusammenfassung

  • Datenrepräsentation definiert, wie Informationen digital gespeichert und verarbeitet werden.
  • Zahlen werden binär dargestellt, Text über Zeichencodierung.
  • Komplexe Datenstrukturen ermöglichen flexible Modellierung.
  • Korrekte Repräsentation ist Voraussetzung für interoperable und sichere Systeme.

Siehe auch

Weblinks