Datenrepräsentation: Unterschied zwischen den Versionen

Aus dev.kaibel.net
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „= 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 Ziel…“
 
Keine Bearbeitungszusammenfassung
 
Zeile 5: Zeile 5:
== Ziele der Datenrepräsentation ==
== Ziele der Datenrepräsentation ==
Die Datenrepräsentation verfolgt folgende Ziele:
Die Datenrepräsentation verfolgt folgende Ziele:
* **Eindeutigkeit:** Daten müssen eindeutig interpretierbar sein.
* ''Eindeutigkeit:'' Daten müssen eindeutig interpretierbar sein.
* **Effizienz:** Speicher- und Rechenaufwand sollen minimiert werden.
* ''Effizienz:'' Speicher- und Rechenaufwand sollen minimiert werden.
* **Kompatibilität:** Daten sollen zwischen Systemen austauschbar sein.
* ''Kompatibilität:'' Daten sollen zwischen Systemen austauschbar sein.
* **Genauigkeit:** Repräsentationen sollen Informationsverluste möglichst vermeiden.
* ''Genauigkeit:'' Repräsentationen sollen Informationsverluste möglichst vermeiden.


== Numerische Daten ==
== Numerische Daten ==
Zeile 26: Zeile 26:
|}
|}


Die Darstellung negativer Zahlen erfolgt meist über das **Zweierkomplement**.
Die Darstellung negativer Zahlen erfolgt meist über das ''Zweierkomplement''.


=== Gleitkommazahlen (Floating Point) ===
=== Gleitkommazahlen (Floating Point) ===
Zeile 45: Zeile 45:


== Zeichen und Text ==
== Zeichen und Text ==
Zeichen werden über **Zeichencodes** dargestellt.
Zeichen werden über ''Zeichencodes'' dargestellt.


=== ASCII ===
=== ASCII ===
Zeile 53: Zeile 53:
=== Unicode / UTF-8 ===
=== Unicode / UTF-8 ===
Unicode ermöglicht die Darstellung nahezu aller Sprachen und Symbole.   
Unicode ermöglicht die Darstellung nahezu aller Sprachen und Symbole.   
**UTF-8** ist die gebräuchlichste Speicherform:
''UTF-8'' ist die gebräuchlichste Speicherform:
* Variabel von 1 bis 4 Bytes pro Zeichen.
* Variabel von 1 bis 4 Bytes pro Zeichen.
* Rückwärtskompatibel zu ASCII.
* Rückwärtskompatibel zu ASCII.
Zeile 66: Zeile 66:
Komplexere Informationen werden durch Kombination einfacher Datentypen aufgebaut.
Komplexere Informationen werden durch Kombination einfacher Datentypen aufgebaut.


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


=== Beispiel in C ===
=== Beispiel in C ===
Zeile 91: Zeile 91:
* Mehr Speicherbedarf
* Mehr Speicherbedarf
* Beispiele:
* Beispiele:
** JSON
'' JSON
** XML
'' XML
** CSV
'' CSV


== Endianess ==
== Endianess ==
Zeile 116: Zeile 116:


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


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


== Zusammenfassung ==
== Zusammenfassung ==

Aktuelle Version vom 8. November 2025, 15:01 Uhr

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