Datenverarbeitung
Im vorherigen Kapitel haben wir gelernt, wie Daten erfasst werden – von Sensoren über Verstärker bis zum A/D-Wandler. Doch was passiert danach? Wie verarbeitet ein Computer diese Daten? Warum "versteht" ein Rechner nur Nullen und Einsen? Und wie werden Zahlen, Texte oder Bilder intern dargestellt?
Um diese Fragen zu beantworten, müssen wir verstehen, wie Computer rechnen und welche Zahlensysteme sie verwenden. Denn während wir Menschen mit dem Dezimalsystem arbeiten, basiert die gesamte digitale Welt auf dem Binärsystem.
Warum das Binärsystem?
Computer bestehen aus Milliarden winziger Transistoren – elektronischen Schaltern, die nur zwei stabile Zustände kennen: EIN (1) oder AUS (0). Diese physikalische Eigenschaft macht das Binärsystem (Basis 2) zur idealen Sprache der Maschinen.
flowchart LR
A[Analoges Signal]:::peach --> B(A/D-Wandler):::teal
B --> C[Digitales Signal #40;Binär#41;]:::peach
C --> D(Prozessor):::teal
D --> E[Berechnung in Binär]:::peach
classDef peach fill:#FFB482aa,stroke:#333,stroke-width:1px;
classDef teal fill:#009485aa,stroke:#333,stroke-width:1px;
Gründe für das Binärsystem:
- Einfache physikalische Realisierung: Transistoren kennen zuverlässig nur zwei stabile Zustände: leitend (1) oder nicht leitend (0). Auch andere Trägersysteme wie Magnetisierung, Licht oder Spannung lassen sich leicht auf an/aus abbilden.
- Hohe Störsicherheit: Mit nur zwei Zuständen sind Signale weniger fehleranfällig. Schon kleine Abweichungen lassen sich durch Schwellwerte tolerieren, ohne dass der Informationsgehalt verloren geht.
- Einfache elektronische Verarbeitung: Logikgatter wie AND, OR, NOT lassen sich direkt auf das Binärsystem abbilden. Dadurch ist die Umsetzung von Rechenoperationen in Hardware effizient und robust.
Bit – die kleinste Informationseinheit
Ein Bit (B inary Dig it) ist die kleinste Informationseinheit in der Informatik und repräsentiert eine Stelle einer Binärzahl. Ein Bit kann zwei Zustände annehmen: 0 oder 1.
Die Interpretation der Zustände kann abhängig vom jeweiligen Kontext variieren:
- Licht an/aus
- Wahr/Falsch
- Hochspannung/Niederspannung
- Nord/Süd (Magnetisierung)
Vom Bit zum Byte
Da ein einzelnes Bit sehr wenig Information speichert, werden mehrere Bits zu Gruppen zusammengefasst. Die wichtigste Gruppe ist das Byte – eine Einheit aus 8 Bit.
Beispiel: Kombinationen mit Bits
Nachdem ein Bit zwei verschiedene Zustände annehmen kann, können n Bits genau \(2^n\) verschiedene Zustände darstellen:
- 1 Bit: \(2^1 = 2\) Zustände →
[0, 1] - 2 Bit: \(2^2 = 4\) Zustände →
[00, 01, 10, 11] - 3 Bit: \(2^3 = 8\) Zustände →
[000, 001, 010, 011, 100, 101, 110, 111] - 8 Bit (1 Byte): \(2^8 = 256\) Zustände →
[00000000 ... 11111111]
Diese Reihe lässt sich beliebig fortsetzen:
2 - 4 - 8 - 16 - 32 - 64 - 128 - 256 - 512 - 1024 - 2048 - 4096 ...
Dem ein oder anderen werden diese Zahlen bekannt vorkommen – beim Blick auf den Speicherplatz des Smartphones, beim Kauf einer neuen Festplatte oder bei der Auflösung des Monitors. Nun wisst ihr auch, woher diese Zahlen kommen!
Warum 8 Bit = 1 Byte?
Früher hatten verschiedene Systeme Bytes mit 6, 7 oder 9 Bits, aber 8 Bits haben sich als Standard etabliert:
- Passt perfekt ins binäre System (16 Bit = 2 Byte, 32 Bit = 4 Byte, 64 Bit = 8 Byte)
- 256 Zustände reichen aus, um alle Zeichen einer Tastatur abzubilden (ASCII-Code)
- Computer können heutzutage nicht jedes einzelne Bit separat adressieren – Bytes sind die kleinste adressierbare Einheit
Zahlensysteme
Im Laufe der Geschichte haben sich verschiedene Zahlensysteme entwickelt, die jeweils an die Bedürfnisse der Gesellschaften angepasst waren.
Das ägyptische Zahlensystem ist beispielsweise ein additives Zehnersystem, bei dem für jede Zehnerpotenz (Einer, Zehner, Hunderter usw.) ein eigenes Hieroglyphen-Symbol verwendet wird, das beliebig oft wiederholt werden kann.
Heute sind insbesondere Stellenwertsysteme (Positionssysteme) von Bedeutung: Jede Stelle einer Zahl hat eine bestimmte Wertigkeit, die sich aus der Basis des Systems ergibt.
Beispiel: Dezimalsystem (Basis 10)
Die Zahl 123 setzt sich aus Hunderten, Zehnern und Einern zusammen:
Die Basis 10 verwendet die Ziffern 0–9. Das Zeichen „3" repräsentiert den Wert 3 und wird mit entsprechenden Vielfachen von 10 multipliziert – abhängig von der Position in der Zahl.
Für all jene, die diesen Witz noch nicht verstehen: Kein Problem. Einfach weiterlesen. 😉
Wichtige Zahlensysteme in der Informatik
Neben dem uns vertrauten Dezimalsystem gibt es weitere Zahlensysteme, die speziell in der Informatik häufig verwendet werden. Jedes System bietet unterschiedliche Vorteile.
Warum verschiedene Systeme?
- Binär: Basis des Computers (Hardware-Ebene)
- Oktal: Kompakte Darstellung von Binärzahlen (3 Bit = 1 Oktalziffer)
- Hexadezimal: Sehr kompakt (4 Bit = 1 Hexziffer), häufig für Farben (#FF5733), Speicheradressen, Maschinenbefehle
Die Basis b gibt an, wie viele Ziffern im System verwendet werden. Mathematisch lässt sich eine Zahl X in der jeweiligen Basis wie folgt darstellen:
Positions- oder Stellenwertsystem
Allgemein gilt für eine positive Zahl X in Basis b:
mit den Ziffern \(x_i \in \{0, 1, \ldots, b-1\}\).
Die Basis wird oft tiefgestellt oder durch Symbole gekennzeichnet: O für Oktal, H für Hexadezimal. Beim Dezimalsystem wird die Basis meist weggelassen.
Aufgabe: Zahlensysteme verstehen
Stelle die nachfolgenden Zahlen entsprechend ihrer Basis mit der allgemeinen Formel dar:
- \(1010_2\)
- \(1755_{10}\)
- \(\text{A4B}_{16}\)
- \(1755\) (ohne Basis angegeben)
Beispiel:
Verschiedene Zahlensysteme im Alltag
Bevor wir uns den technischen Details der Basisumwandlung widmen, schauen wir uns zunächst an, wo uns diese Zahlensysteme – insbesondere das Binär- und Hexadezimalsystem – im täglichen Leben begegnen. Diese praktischen Beispiele zeigen, warum das Verständnis verschiedener Zahlensysteme nicht nur theoretisch wichtig ist, sondern konkrete Anwendungen hat.
Beispiel 1: Farbdarstellung (RGB)
Farben auf Bildschirmen werden meist im RGB-Modell dargestellt – jede Farbe besteht aus Rot, Grün und Blau-Anteilen. Jeder Farbkanal wird mit 8 Bit (= 1 Byte) codiert → 256 Stufen pro Kanal.
Beispiel: Farbcode
- Weiß:
#FFFFFF(Hex) =(255, 255, 255)(Dez) =11111111 11111111 11111111(Bin) - Schwarz:
#000000(Hex) =(0, 0, 0)(Dez) =00000000 00000000 00000000(Bin) - Rot:
#FF0000(Hex) =(255, 0, 0)(Dez) =11111111 00000000 00000000(Bin)
Beispiel 2: IPv4-Adressen
Eine IPv4-Adresse besteht aus 4 Bytes (32 Bit), z. B. 192.168.1.1.
Beispiel: IP-Adresse in Binär
Jede Zahl ist ein Byte (0–255).
Beispiel 3: Speichergrößen
Hinweis
In der Praxis wird oft 1 KB = 1000 Bytes verwendet (SI-Standard), was zu Verwirrung führt. Computer rechnen aber in Zweierpotenzen (1 KiB = 1024 Bytes).
Basisumwandlung
Prinzipiell ist es möglich, jede Zahl in ein anderes Zahlensystem umzuwandeln. Dafür stehen verschiedene Verfahren zur Verfügung. Meist verwendet man das Dezimalsystem als Zwischensystem.
Umwandlung in das Dezimalsystem (b → 10)
Das Umrechnen in das Dezimalsystem ist besonders einfach: Jede Ziffer wird mit ihrer Stellenwertigkeit multipliziert und anschließend aufsummiert.
Beispiel: Umwandlung in das Dezimalsystem
Binär zu Dezimal:
Oktal zu Dezimal:
Hexadezimal zu Dezimal:
(Hinweis: \(\text{C} = 12, \text{A} = 10, \text{F} = 15, \text{E} = 14\))
Umwandlung vom Dezimalsystem in ein beliebiges Zahlensystem (10 → b)
Die Ausgangszahl wird wiederholt durch die Zielbasis geteilt, bis der Quotient 0 ist. Die Reste ergeben die Ziffern der neuen Darstellung – von rechts nach links.
Beispiele: Umwandlung vom Dezimalsystem
Vom Dezimal- ins Oktalsystem:
Ergebnis (Reste von unten nach oben lesen): \(327_{10} = 507_8\)
Vom Dezimal- ins Hexadezimalsystem:
Ergebnis: \(327_{10} = 147_{16}\)
Aufgabe: Basisumwandlung
Wandle die nachfolgenden Zahlen in die geforderte Basis um:
- \(1010_2\) zu Dezimal
- \(1755_{10}\) zu Oktal
- \(\text{A4B}_{16}\) zu Binär
- \(1755_{10}\) zu Hexadezimal
Festkommaarithmetik
Nicht nur ganze Zahlen, auch rationale Zahlen (Kommazahlen) können in verschiedenen Basen dargestellt werden. Dabei wird zwischen Vorkomma- und Nachkommateil unterschieden.
Festkommaarithmetik – allgemeine Formel
Allgemein gilt für eine Zahl X in Basis b mit n Vorkomma- und m Nachkommastellen:
mit den Ziffern \(x_i \in \{0, 1, \ldots, b-1\}\).
Beispiel: Festkommaarithmetik
Die Zahl \(10{,}625_{10}\) lässt sich zerlegen in:
Die Konvertierung zwischen verschiedenen Basen in der Festkommaarithmetik ist ebenfalls möglich, wird aber hier nicht weiter behandelt. Eine Beschreibung findet sich beispielsweise hier.
Negative Zahlen
Bisher haben wir nur positive ganze Zahlen betrachtet. Um auch negative Zahlen darstellen zu können, gibt es verschiedene Verfahren. Die wichtigsten sind:
- Vorzeichen-Betrag-Darstellung
- Einerkomplement
- Zweierkomplement ⭐ (heute Standard)
Vorzeichen-Betrag-Darstellung
- Das höchstwertige Bit (MSB = Most Significant Bit) dient als Vorzeichenbit:
0→ Zahl ist positiv1→ Zahl ist negativ
- Die restlichen Bits geben den Betrag an.
Vorzeichen-Betrag Darstellung
Die Zahl \(5\) wird binär dargestellt als:
Wenn wir \(\pm 5\) mit Vorzeichen und Betrag darstellen wollen, stellen wir ein Vorzeichenbit voran:
Nachteile:
- Es gibt zwei Darstellungen für Null:
0000und1000 - Rechenoperationen (Addition/Subtraktion) sind aufwändiger als bei anderen Darstellungen
Einerkomplement-Darstellung
- Positive Zahlen wie gewohnt.
- Negative Zahlen entstehen durch bitweise Invertierung (alle 0 → 1 und 1 → 0).
- Auch hier gibt es ein Vorzeichenbit (zeigt an, ob invertiert wurde).
Einerkomplement Darstellung
Wir möchten die Zahlen \(\pm 5\) im Einerkomplement darstellen:
Positive Zahl (bleibt gleich):
Negative Zahl (Bits invertieren):
Vorteil:
- Subtraktion kann durch Addition der negativen Zahl realisiert werden: \(3 - 4 = 3 + (-4)\)
Nachteile:
- Auch hier zwei Darstellungen der Null:
0000und1111 - Bei Addition wird eine Übertrag-Korrektur benötigt
Zweierkomplement-Darstellung ⭐
Die Zweierkomplement-Darstellung ist das heute in Computern gebräuchlichste Verfahren zum Umgang mit negativen Zahlen. Sie baut auf dem Einerkomplement auf:
Vorgehensweise:
- Positive Zahlen: Wie gewohnt darstellen
- Negative Zahlen:
- Alle Bits invertieren (Einerkomplement bilden)
- Anschließend 1 addieren
Zweierkomplement Darstellung
Wir möchten die Zahlen \(\pm 5\) im Zweierkomplement darstellen.
Positive Zahl:
Negative Zahl:
- Einerkomplement bilden: \(0101 \rightarrow 1010\)
- 1 addieren:
Ergebnis: \(-5 = 1011_2\) (im Zweierkomplement)
Vorteile des Zweierkomplements:
- Es gibt nur eine Darstellung der Null (
0000) - Addition und Subtraktion funktionieren ohne Sonderregeln
- Hardware-Implementierung ist einfach und effizient
Gegenüberstellung der Darstellungen
Aufgabe: Negative Zahlen
Stellen Sie die Zahl \(-7\) in allen drei verschiedenen Darstellungsarten dar (verwenden Sie 4 Bit).
Zusammenfassung 📌
- Computer arbeiten auf Basis des Binärsystems, weil Transistoren nur zwei stabile Zustände kennen.
- Ein Bit ist die kleinste Informationseinheit, ein Byte besteht aus 8 Bit.
- Es gibt verschiedene Zahlensysteme (Binär, Oktal, Dezimal, Hexadezimal), die sich durch ihre Basis unterscheiden.
- Zahlen können zwischen verschiedenen Basen umgewandelt werden.
- Negative Zahlen werden meist im Zweierkomplement dargestellt – das ist effizient und hat keine doppelte Null.
- Das Binärsystem begegnet uns überall: bei Farben, IP-Adressen, Speichergrößen und in der Datenverarbeitung.
Nachdem wir nun verstehen, wie Computer Daten verarbeiten und in welcher Form sie intern dargestellt werden, stellt sich die Frage: Wie werden diese Daten dauerhaft gespeichert? Dieser Frage gehen wir im nächsten Kapitel nach.