Datenrepräsentation: Unterschied zwischen den Versionen
PhilKa (Diskussion | Beiträge) 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…“ |
PhilKa (Diskussion | Beiträge) 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. | ||
* | * ''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 == | == Numerische Daten == | ||
| Zeile 26: | Zeile 26: | ||
|} | |} | ||
Die Darstellung negativer Zahlen erfolgt meist über das | 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 | 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: | |||
* 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. | ||
* | * ''Strukturen (struct):'' Gruppierte heterogene Daten. | ||
* | * ''Zeiger:'' Speichern Speicheradressen. | ||
* | * ''Objekte:'' Daten + zugehörige Funktionen (in OOP). | ||
=== Beispiel in C === | === Beispiel in C === | ||
| Zeile 91: | Zeile 91: | ||
* Mehr Speicherbedarf | * Mehr Speicherbedarf | ||
* Beispiele: | * Beispiele: | ||
'' JSON | |||
'' XML | |||
'' CSV | |||
== Endianess == | == Endianess == | ||
| Zeile 116: | Zeile 116: | ||
Wichtige Konzepte: | 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 == | == Herausforderungen == | ||
* | * ''Informationsverlust:'' z. B. Rundungsfehler bei Gleitkommazahlen. | ||
* | * ''Inkompatibilität:'' unterschiedliche Endianess oder Zeichencodierungen. | ||
* | * ''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.