- Lernen
- Informatik & Informationswissenschaften
- Informatik
- Informatik – Computer, Algorithmen, Internet und KI verstehen
- Binärsystem und Datendarstellung
Binärsystem und Datendarstellung
AnfängerEinheit 2 von 7 in Kurs: Informatik – Computer, Algorithmen, Internet und KI verstehen
Was du lernst
- Erkläre, wie Gruppen von Bits Informationen kodieren, und rechne ganze Zahlen zwischen Dezimal-, Binär- und Hexadezimalsystem um.
- Erkläre Bits, Bytes und die Anzahl der Werte, die eine Gruppe von Bits darstellen kannBeschreibe Bits und Bytes, berechne die Anzahl der Muster, die eine bestimmte Anzahl von Bits ergibt, und lies Speicher- und Geschwindigkeitseinheiten korrekt.
- Rechne ganze Zahlen zwischen Dezimal- und Binärsystem umLies Binärzahlen mithilfe ihrer Stellenwerte und wandle ganze Dezimalzahlen mit zwei zuverlässigen Verfahren in Binärzahlen um.
- Nutze die Hexadezimaldarstellung als Kurzschreibweise für die BinärdarstellungRechne zwischen Hexadezimal-, Binär- und Dezimalsystem um und erkläre, warum Programmierer Bytes, Farben und Adressen hexadezimal schreiben.
- Erkläre Bits, Bytes und die Anzahl der Werte, die eine Gruppe von Bits darstellen kann
- Speichere nicht negative und negative ganze Zahlen mit einer festen Anzahl von Bits, bestimme ihre Darstellungsbereiche und erkläre, was geschieht, wenn ein Wert nicht hineinpasst.
- Speichere vorzeichenlose Ganzzahlen und bestimme ihren DarstellungsbereichStelle nicht negative ganze Zahlen mit fester Bitbreite dar, wähle eine passende Bitbreite und erkläre Überlauf.
- Stelle negative ganze Zahlen im Zweierkomplement darLies und schreibe negative ganze Zahlen im Zweierkomplement, bestimme den Darstellungsbereich einer vorzeichenbehafteten Bitbreite und vergleiche sie mit der Vorzeichen-Betrag-Darstellung.
- Speichere vorzeichenlose Ganzzahlen und bestimme ihren Darstellungsbereich
- Schreibe Brüche im Binärsystem, kodiere und dekodiere Zahlen in den Gleitkommaformaten nach IEEE 754 und erkläre die Grenzen ihres Darstellungsbereichs und ihrer Darstellungsgenauigkeit.
- Schreibe Brüche im Binärsystem und erkenne, warum manche keine endliche Binärdarstellung habenRechne zwischen Dezimal- und Binärbrüchen um, erkenne periodische Binärbrüche wie 0,1 und beschreibe Festkommazahlen.
- Kodiere und dekodiere Gleitkommazahlen nach IEEE 754Nutze die wissenschaftliche Schreibweise im Binärsystem und die Felder für Vorzeichen, Exponent und Nachkommaanteil der IEEE-754-Formate mit einfacher und doppelter Genauigkeit.
- Erkläre Darstellungsbereich, Darstellungsgenauigkeit und Rundungsfehler bei der GleitkommadarstellungErkläre, warum Gleitkommawerte Näherungen sind, sage typische Auswirkungen wie bei 0,1 + 0,2 voraus und wähle einen geeigneten Zahlentyp.
- Schreibe Brüche im Binärsystem und erkenne, warum manche keine endliche Binärdarstellung haben
- Erkläre, wie aus Zeichen Zahlen und Bytes werden, nutze ASCII und Unicode und bestimme, wie viele Bytes UTF-8-Text benötigt.
- Kodiere Text mithilfe von Zeichencodes und ASCIIWandle Text mithilfe einer Zeichencodetabelle in Zahlen und Bits um, lies den Aufbau von ASCII und erkläre seine Grenzen.
- Nutze Unicode-Codepunkte und die UTF-8-KodierungUnterscheide einen Unicode-Codepunkt von seinen kodierten Bytes, kodiere Zeichen in UTF-8 und erkläre Zeichensalat und die Anzahl der Bytes.
- Kodiere Text mithilfe von Zeichencodes und ASCII
- Beschreibe, wie aus Bildern Pixel und Farbwerte werden, berechne ihren Speicherbedarf und erkläre, wie Ton abgetastet und in Zahlen umgewandelt wird.
- Stelle Bilder mithilfe von Pixeln und Farbwerten darBeschreibe Rastergrafiken, Farbtiefe, RGB- und Hexadezimalfarbcodes, Farbpaletten und Transparenz.
- Berechne die Speichergröße von Bildern und vergleiche Rastergrafiken mit VektorgrafikenBerechne den Speicherbedarf eines unkomprimierten Bildes oder Videos, erkläre, was Dateien zusätzlich enthalten, und beschreibe Vektorgrafiken.
- Digitalisiere Ton durch Abtastung und QuantisierungErkläre Abtastung, Abtastrate und Bittiefe, wende die Abtastregel an und berechne die Größe unkomprimierter Audiodaten.
- Stelle Bilder mithilfe von Pixeln und Farbwerten dar
- Erkläre, wie Kompression Daten verkleinert, wende einfache verlustfreie Verfahren an und wähle zwischen verlustfreien und verlustbehafteten Formaten.
- Erkläre verlustfreie Kompression anhand der Lauflängenkodierung und weiterer KodierungsverfahrenWende Lauflängenkodierung und Codes variabler Länge an, beschreibe Wörterbuchverfahren und erkläre, warum kein Verfahren jede Datei verkleinert.
- Erkläre verlustbehaftete Kompression und wähle ein geeignetes FormatBeschreibe, wie verlustbehaftete Kompression weniger auffällige Details entfernt, wäge Qualität gegen Größe ab und wähle Formate für verschiedene Datenarten.
- Erkläre verlustfreie Kompression anhand der Lauflängenkodierung und weiterer Kodierungsverfahren
Binärsystem und Datendarstellung einfach erklärt
1Zähle Muster und wechsle die Zahlenbasis
Ein Computer kann dieselbe Gruppe von Bits für eine Zahl, einen Buchstaben oder einen Teil eines Bildes verwenden. Die Interpretation gibt dem Muster seine Bedeutung. Bevor du mit diesen Interpretationen arbeitest, musst du die verfügbaren Muster zählen und die Einheiten für Speicherung und Übertragung lesen können. Dezimal-, Binär- und Hexadezimalsystem bieten dir dann drei Möglichkeiten, eine ganze Zahl zu schreiben. Ihre Stellenwerte machen Umrechnungen nachvollziehbar.
1.1 Bits, Bytes und Speichereinheiten
Ein Bit hat einen von zwei Werten: 0 oder 1. Hardware kann zwei physikalische Zustände zuverlässig unterscheiden, etwa hohe und niedrige Spannung, entgegengesetzte Magnetisierungsrichtungen oder Licht und kein Licht. Die geschriebenen Ziffern beschreiben diese Zustände; sie müssen nicht buchstäblich in einem Gerät erscheinen.
Zähle die Muster
Jedes neue Bit verdoppelt die Möglichkeiten. Zwei Bits haben vier Muster: 00, 01, 10 und 11. Drei Bits haben acht. Allgemein ergeben Bits Muster. Ein Nibble besteht aus 4 Bits und ein Byte aus 8 Bits, ein Byte hat also 256 Muster. Ein Byte ist auf den meisten modernen Computern auch die kleinste adressierbare Speichereinheit.
Um eine Reihe von Werten zu kodieren, wählst du genügend Muster für jeden Wert. Für 26 Buchstaben ergeben vier Bits nur 16 Muster; fünf Bits ergeben 32, also reichen fünf Bits. Für 1.000 Werte ergeben neun Bits 512 und zehn Bits 1.024 Muster. Ungenutzte Muster sind erlaubt. Mit 16 Bits gibt es 65.536 Muster und mit 32 Bits 4.294.967.296.
Die Anzahl der Muster unterscheidet sich von der größten vorzeichenlosen Zahl. Vier Bits liefern 16 Muster, doch das Zählen beginnt bei null, sodass die Werte von 0 bis 15 reichen. Ein Muster wird bereits für null verwendet.
Um die kleinste Bitbreite systematisch zu finden, vergleichst du aufeinanderfolgende Potenzen von zwei mit der benötigten Anzahl von Möglichkeiten. Halte bei der ersten Potenz an, die groß genug ist. Für N verschiedene Werte lautet die Prüfung . Genaue Gleichheit ist erlaubt: Acht Möglichkeiten passen in drei Bits, während eine neunte ein viertes Bit benötigt. Eine größere Bitbreite funktioniert ebenfalls, ist aber nicht mehr die kleinste.
Gib dem Muster eine Bedeutung
Das Byte 01000001 kann die Ganzzahl 65, den ASCII-Buchstaben „A“ oder eine Farbkanalintensität von 65 auf einer Skala von 0–255 bedeuten. Die Bits allein legen keine dieser Lesarten fest. Der Datentyp eines Programms und das Format der Datei bestimmen, wie sie zu interpretieren sind.
Lies Speichereinheiten
Zwei Familien von Präfixen sind gebräuchlich:
| Dezimaler Speicher | Bytes | Binärer Speicher | Bytes |
|---|---|---|---|
| 1 kB | 1.000 | 1 KiB | 1.024 |
| 1 MB | 1.000.000 | 1 MiB | 1.048.576 |
| 1 GB | 1.000.000.000 | 1 GiB | 1.073.741.824 |
Die dezimalen Präfixe sind SI-Präfixe; die binären Präfixe sind IEC-Präfixe. Bei jedem dezimalen Schritt wächst die Einheit um den Faktor 1.000, bei jedem binären um den Faktor 1.024. Um Bytes in einer größeren Einheit auszudrücken, dividiere durch die Anzahl der Bytes in dieser Einheit.
Ein Laufwerk mit der Angabe 500 GB enthält 500.000.000.000 Bytes. Die Division durch 1.073.741.824 ergibt etwa 465,66 GiB. Software kann diese binäre Menge als „GB“ bezeichnen, wodurch die angezeigte Kapazität kleiner aussieht. Der Einheitenwechsel selbst hat keine Bytes entfernt; Formatierung und Systemdateien sind separate Fragen.
Unterscheide Bits und Bytes
Das kleine b bedeutet Bit, das große B Byte. Eine Verbindung mit 100 Mbit/s überträgt höchstens 100 Millionen Bits pro Sekunde. Die Division durch 8 ergibt 12,5 Millionen Bytes pro Sekunde oder 12,5 MB/s, bevor der Protokoll-Overhead berücksichtigt wird. Liest man diese Geschwindigkeit als 100 MB/s, ist sie achtmal zu groß.
Wichtige Erkenntnisse
- Ein Byte hat 8 Bits; ein Nibble hat 4.
- Jedes zusätzliche Bit verdoppelt die Anzahl der Muster.
- Wähle die kleinste Anzahl von Bits, deren verfügbare Muster alle Werte abdecken.
- Ein Datentyp oder eine Kodierung gibt einem Bitmuster seine Bedeutung.
- SI-Präfixe für Speichereinheiten nutzen Potenzen von 10; IEC-Präfixe nutzen Potenzen von 2.
- Dividiere eine Bitrate durch 8, um die entsprechende Byterate zu erhalten.
1.2 Binäre Stellenwerte und Umrechnung
Das Binärsystem ist ein Stellenwertsystem: Der Wert einer Ziffer hängt von ihrer Position ab. Das Dezimalsystem verwendet zehn Ziffern und Potenzen von 10. Das Binärsystem verwendet zwei Ziffern, 0 und 1, und Potenzen von 2. Um eine Binärzahl zu lesen, addierst du die Stellenwerte, an denen eine 1 steht.
Lies eine ganze Binärzahl
Von rechts nach links sind die Stellenwerte 1, 2, 4, 8, 16, 32, 64, 128 und so weiter. Jeder ist doppelt so groß wie der vorherige, denn , und .
Ordne für die sechs Bits ihren Stellenwerten zu:
| Stellenwert | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|
| Bit | 1 | 0 | 1 | 1 | 0 | 1 |
Der Wert ist . Eine Null trägt nichts bei, hält aber die anderen Ziffern an den richtigen Stellen. Führende Nullen ändern den Wert nicht: 00101101 ist ebenfalls 45.
Das Bit ganz links ist das höchstwertige Bit, das MSB. Das Bit ganz rechts ist das niederwertigste Bit, das LSB. Jeder Stellenwert außer dem letzten ist gerade, daher ist eine ganze Binärzahl genau dann ungerade, wenn ihr LSB 1 ist.
Rechne durch Subtraktion von Zweierpotenzen um
Um 156 binär zu schreiben, beginnst du mit der größten passenden Zweierpotenz: 128. Subtrahiere sie, es bleibt 28. Die Stellenwerte 64 und 32 passen nicht, also erhalten beide eine 0. Nimm 16, es bleibt 12; nimm 8, es bleibt 4; nimm 4, es bleibt 0. Die nicht verwendeten Stellenwerte 2 und 1 erhalten eine 0.
In der Reihenfolge der Stellen ergibt sich . Prüfe durch Addition der gewählten Stellenwerte: . Würdest du eine nicht verwendete Stelle überspringen, verschöbe das jedes nachfolgende Bit und änderte die Zahl.
Das Subtraktionsverfahren funktioniert, weil jeder binäre Stellenwert höchstens einmal verwendet werden kann. Nach Abzug der größten passenden Potenz ist der Rest kleiner als diese Potenz. Gehe alle Stellen abwärts durch, auch die mit null, bis die Einerstelle besetzt ist. So entsprechen die gewählten Bits verschiedenen Potenzen, statt nur eine Liste von Potenzen ohne Positionen zu bilden.
Rechne durch wiederholte Division um
Ein anderes Verfahren dividiert wiederholt durch 2. Verwende den Quotienten für die nächste Division und notiere den Rest:
| Zahl | Quotient | Rest |
|---|---|---|
| 156 | 78 | 0 |
| 78 | 39 | 0 |
| 39 | 19 | 1 |
| 19 | 9 | 1 |
| 9 | 4 | 1 |
| 4 | 2 | 0 |
| 2 | 1 | 0 |
| 1 | 0 | 1 |
Lies die Reste von unten nach oben; das ergibt 10011100. Der erste Rest gehört zur Einerstelle, daher kehrt das Lesen von oben nach unten die Reihenfolge der Stellen um. Hier würde das 00111001 ergeben, also 57.
Halte die Basis sichtbar
Die tiefgestellte Zahl in bedeutet Basis 2, der Wert ist also zwei. Dieselben Ziffern in bedeuten zehn. Binärzahlen werden üblicherweise Ziffer für Ziffer gelesen: „eins null“. Das Zählen verläuft 0, 1, 10, 11, 100, 101, 110, 111, 1000; ein Übertrag erfolgt, wenn eine Stelle 2 erreicht. Eine Folge von acht Einsen ist . Das Anhängen einer Null verschiebt jede Stelle nach links und verdoppelt den Wert: Aus 101 wird 1010, aus fünf wird zehn.
Wichtige Erkenntnisse
- Addiere die Zweierpotenzen, deren Bits 1 sind.
- Führende Nullen erhalten den Wert; fehlende innere Stellen tun das nicht.
- Lies die Reste der wiederholten Division vom letzten bis zum ersten.
- Eine ganze Zahl ist genau dann ungerade, wenn ihr niederwertigstes Bit 1 ist.
- Das Anhängen einer Null verdoppelt eine ganze Binärzahl ohne feste Bitbreite.
1.3 Hexadezimaldarstellung als lesbare Binärdarstellung
Das Hexadezimalsystem schreibt Zahlen zur Basis 16. Seine Ziffern sind 0–9, gefolgt von A, B, C, D, E und F, die für 10 bis 15 stehen. Eine einzelne Hexadezimalziffer kann jede mögliche Gruppe von vier Bits beschreiben und macht lange Binärmuster leichter lesbar.
Ordne vier Bits einer Ziffer zu
Da gilt, entspricht jede Hexadezimalstelle genau vier Binärstellen:
| Hexadezimal | Binär | Hexadezimal | Binär |
|---|---|---|---|
| 0 | 0000 | 8 | 1000 |
| 1 | 0001 | 9 | 1001 |
| 2 | 0010 | A | 1010 |
| 3 | 0011 | B | 1011 |
| 4 | 0100 | C | 1100 |
| 5 | 0101 | D | 1101 |
| 6 | 0110 | E | 1110 |
| 7 | 0111 | F | 1111 |
Für die Umrechnung von Binär nach Hexadezimal gruppierst du von rechts. Aus dem Muster 10011100 wird 1001 1100, also 0x9C. Ergänze eine kürzere letzte Gruppe links mit führenden Nullen: Aus 101101 wird 0010 1101, also 0x2D. Eine Gruppierung von links als 1011 01 würde die Ziffern an die falschen Stellen setzen.
Für die Rückumrechnung erweiterst du jede Ziffer auf vier Bits. So wird aus 0x3E8 die Folge 0011 1110 1000. Behalte alle vier Bits jeder Gruppe, auch wenn eine Gruppe mit Nullen beginnt. Nur Nullen ganz links in der gesamten Zahl können entfallen, ohne ihren Wert zu ändern.
Nutze die Stellenwerte zur Basis 16
Von rechts nach links sind die hexadezimalen Stellenwerte 1, 16, 256 und 4.096. Multipliziere den Wert jeder Ziffer mit ihrem Stellenwert und addiere. Für 0x2F lautet die Rechnung . Für 0x3E8:
Auch die Umrechnung von Dezimal nach Hexadezimal funktioniert durch wiederholte Division, nun durch 16. Für 1.000 ist der erste Quotient 62 mit Rest 8. Die Division von 62 ergibt den Quotienten 3 mit Rest 14, geschrieben E. Die Division von 3 ergibt den Quotienten 0 mit Rest 3. Lies die Reste von unten nach oben: 3, E, 8.
Die Gruppierung funktioniert aufgrund der Stellenwerte, nicht nur durch eine Zuordnungstabelle. In einer zweistelligen Hexadezimalzahl trägt das linke Nibble seinen Wert mal 16 bei, das rechte seinen Wert mal 1. Auch im Binärsystem multipliziert eine Verschiebung eines Nibbles um vier Stellen nach links seinen Wert mit 16. Dieser gemeinsame Faktor erlaubt es, die beiden Gruppen unabhängig voneinander zu lesen, ohne zuerst die ganze Zahl ins Dezimalsystem umzurechnen.
Erkenne typische Anwendungen
Ein Byte besteht aus zwei Nibbles und entspricht daher genau zwei Hexadezimalziffern, von 0x00 bis 0xFF. Ein Byte-Betrachter kann eine lange Datei hexadezimal viermal kürzer als binär anzeigen und dabei die Gruppengrenzen sichtbar halten.
Webfarben wie #FF8000 verwenden Hexadezimalziffernpaare für Rot, Grün und Blau. Auch Speicheradressen und Unicode-Codepunkte wie U+00E9 verwenden die Hexadezimaldarstellung. Eine MAC-Adresse wie 3C:22:FB:9A:01:7E schreibt sechs Bytes als zwölf Hexadezimalziffern, mit Trennzeichen zwischen den Bytes.
Das Präfix 0x, eine tiefgestellte Basis wie in oder das # in einem Farbcode kennzeichnet die Schreibweise. Der Computer speichert dieselben Bits, unabhängig davon, welche Schreibweise ein Mensch nutzt. Insbesondere bedeutet 0x10 sechzehn. Der Wert fünfzehn ist die einzelne Ziffer F; „15“ belegt zwei Hexadezimalstellen und bedeutet einundzwanzig.
Wichtige Erkenntnisse
- Das Hexadezimalsystem nutzt 0–9 und A–F, wobei A–F für 10–15 stehen.
- Gruppiere Binärziffern von rechts in Vierergruppen, um hexadezimal umzurechnen.
- Ein Byte entspricht genau zwei Hexadezimalziffern.
- Hexadezimale Stellenwerte sind Potenzen von 16; eine andere Schreibweise ändert die gespeicherten Bits nicht.
2Speichere ganze Zahlen mit fester Bitbreite
Eine feste Anzahl von Bits kann nur eine feste Reihe ganzer Zahlen aufnehmen. Die gewählte Interpretation entscheidet, ob alle Muster nicht negative Werte darstellen oder ob einige für negative Werte stehen. Du wirst dasselbe Byte auf beide Arten lesen, passende Bitbreiten für einen geforderten Darstellungsbereich wählen und verfolgen, was an den Endpunkten geschieht. Das Zweierkomplement erklärt auch, wie negative Werte ihre Bedeutung behalten, wenn ihre Bitbreite wächst.
2.1 Vorzeichenlose Werte und Überlauf
Eine vorzeichenlose Ganzzahl stellt eine nicht negative ganze Zahl dar. Alle ihre Bits haben die üblichen positiven binären Stellenwerte. Die Bitbreite legt fest, wie viele Stellen verfügbar sind. Ein Byte kann also nicht um ein neuntes Bit wachsen, nur weil ein Ergebnis es benötigt.
Bestimme den Darstellungsbereich
Für Bits gibt es Muster. Beginnt man bei null, ergibt sich der Bereich . Der größte Wert hat an jeder Stelle eine 1:
| Bitbreite | Vorzeichenloser Darstellungsbereich |
|---|---|
| 8 Bits | 0–255 |
| 16 Bits | 0–65.535 |
| 32 Bits | 0–4.294.967.295 |
Die Anzahl der verfügbaren Werte und der größte Wert unterscheiden sich um eins. Acht Bits erlauben 256 Möglichkeiten, aber 256 selbst benötigt neun Stellen, 1 0000 0000.
Ein gespeicherter Wert füllt seine Bitbreite mit führenden Nullen. Zum Beispiel ist 45 mit 16 Bits gleich 0000000000101101 oder 0x002D. Diese Nullen zeigen die Bitbreite an, ohne den Wert zu ändern. Eine negative Zahl hat keine vorzeichenlose Darstellung, unabhängig von der gewählten Bitbreite.
Wähle genügend Stellen
Ein Altersbereich von 0 bis 150 passt in 8 Bits, weil 150 kleiner als 255 ist. Eine Anzahl von 0 bis 100.000 umfasst 100.001 mögliche Werte. Sechzehn Bits bieten nur 65.536 Muster. Siebzehn bieten 131.072, also ist 17 die mathematisch kleinste Bitbreite. Ein Programm, das die üblichen Bitbreiten 8, 16, 32 und 64 verwendet, würde 32 Bits wählen.
Dieselbe Überlegung gilt für jeden beschränkten Zähler: Prüfe den größten Wert, den der Zähler tatsächlich aufnehmen muss, und berücksichtige beide Endpunkte. Ein Bereich von 0 bis 256 benötigt 257 Muster und passt daher nicht in ein Byte.
Eine hilfreiche Prüfung an der Schranke vergleicht benachbarte Bitbreiten. Das vorzeichenlose Maximum für 8 Bits ist 255, für 9 Bits ist es 511. Ein zusätzliches Bit verdoppelt die Anzahl der Muster; das Maximum wird zum Doppelten des alten Maximums plus eins. Dieser Unterschied ist wichtig, wenn eine Anforderung genau auf einer Zweierpotenz liegt: Dieser Endpunkt benötigt eine neue Stelle, obwohl die vorherige Bitbreite ebenso viele Muster hat.
Verfolge ein Ergebnis außerhalb des Bereichs
Überlauf bedeutet, dass ein Ergebnis nicht in die gewählte Darstellung passt. Behält eine 8-Bit-Rechnung nur die acht niederwertigsten Bits, ergibt 255 plus 1 die Folge 1 0000 0000 und speichert 00000000: null. Die zusätzliche Stelle wird verworfen.
Für 200 plus 100 ist das mathematische Ergebnis 300. Bei dieser Bitbreite bleibt der Rest nach einem vollständigen Zyklus von 256 Mustern erhalten: . Das gespeicherte Byte ist 00101100. Dieses Verhalten heißt Wraparound. Es ändert nichts an der rechnerischen Tatsache, dass 200 plus 100 gleich 300 ist; es beschreibt, was der begrenzte Speicher behält.
Das Verhalten bei Überlauf hängt vom System ab. Manche Operationen springen zum Anfang des Bereichs zurück, manche melden einen Fehler und manche Zahlentypen wachsen. Bei einer Aufgabe zum Wraparound muss dieses Verhalten feststehen, bevor du höherwertige Bits verwirfst.
Erkenne feste Bitbreiten in Daten
Eine IPv4-Adresse hat 32 Bits und damit etwa 4,3 Milliarden mögliche Muster. Dieser endliche Adressraum trug dazu bei, dass ein größeres Adressierungssystem nötig wurde. Ein gewöhnlicher RGB-Farbkanal hat 8 Bits, was seine Intensitätsskala von 0–255 erklärt. Das Maximum folgt in beiden Fällen aus der Bitbreite; eine längere dezimale Schreibweise schafft keine zusätzliche Speicherkapazität.
Wichtige Erkenntnisse
- Eine vorzeichenlose Ganzzahl mit n Bits reicht von 0 bis 2ⁿ − 1.
- Berücksichtige bei der Wahl einer Bitbreite beide Endpunkte.
- Führende Nullen füllen eine Bitbreite, ohne einen vorzeichenlosen Wert zu ändern.
- Überlauf bedeutet, dass ein Ergebnis außerhalb des Darstellungsbereichs liegt.
- Behält ein System nur die niederwertigsten n Bits, springen vorzeichenlose Werte in Zyklen von 2ⁿ zum Anfang zurück.
2.2 Negative ganze Zahlen im Zweierkomplement
Eine negative Ganzzahl benötigt eine Darstellungsregel, nicht nur ein Minuszeichen neben einem Byte. Das Zweierkomplement gibt dem höchstwertigen Bit einen negativen Stellenwert. Die übrigen Stellen behalten ihre positiven Werte, sodass jedes Muster einen vorzeichenbehafteten Wert und null ein einziges Muster hat.
Vergleiche zwei vorzeichenbehaftete Lesarten
Ein einfacheres Verfahren, die Vorzeichen-Betrag-Darstellung, verwendet das höchstwertige Bit nur für das Vorzeichen und die übrigen Bits für den Betrag. Bei 8 Bits ist +5 gleich 00000101 und −5 gleich 10000101. Es gibt zwei Nullen, 00000000 und 10000000, und die Addition unterschiedlicher Vorzeichen benötigt zusätzliche Regeln.
Im Zweierkomplement mit 8 Bits sind die Stellenwerte −128, 64, 32, 16, 8, 4, 2 und 1. Somit bedeutet 11010011 gleich . Läse man die anderen sieben Bits als Betrag 83, ergäbe das −83, was zu einer anderen Darstellung gehört.
| Bitbreite | Darstellungsbereich im Zweierkomplement |
|---|---|
| 8 Bits | −128–127 |
| 16 Bits | −32.768–32.767 |
| 32 Bits | −2.147.483.648–2.147.483.647 |
Allgemein ist der Bereich . Null und positive Werte sehen wie gewöhnliche Binärzahlen mit einer führenden 0 aus. Lauter Einsen stellen −1 dar.
Schreibe einen negativen Wert
Um das Vorzeichen eines darstellbaren Werts umzukehren, invertierst du jedes Bit und addierst 1, wobei die Bitbreite fest bleibt. So kodierst du −45 mit 8 Bits:
- Schreibe +45 als 00101101.
- Invertiere alle acht Bits: 11010010.
- Addiere 1: 11010011 oder 0xD3.
Ein Abbruch nach dem Invertieren ergibt −46. Wendest du das gesamte Verfahren auf 11010011 an, erhältst du wieder 00101101 und damit +45.
Ein anderer Weg kodiert als vorzeichenlosen Wert . Hier gilt , dessen Binärdarstellung 11010011 ist. Das Byte bedeutet daher vorzeichenlos 211 oder vorzeichenbehaftet −45. Die Bits haben sich nicht geändert, der Typ schon.
Das Invertieren mit anschließender Addition lässt sich auch rechnerisch erklären. Für einen positiven Wert x mit n Bits ergibt das Invertieren den vorzeichenlosen Wert . Die Addition von eins ergibt , dessen vorzeichenbehaftete Interpretation −x ist. Das verbindet das bitweise Verfahren mit dem Subtraktionsverfahren und erklärt, warum das Weglassen der abschließenden 1 den falschen negativen Wert ergibt.
Erhalte einen vorzeichenbehafteten Wert mit mehr Bits
Die Vorzeichenerweiterung kopiert das höchstwertige Bit in die neuen Stellen links. −3 mit vier Bits ist 1101; mit 8 Bits ist es 11111101. Der negative höchstwertige Stellenwert und die hinzugefügten positiven Stellenwerte ergeben weiterhin zusammen −3. Das Auffüllen mit Nullen ergäbe 00001101, also +13. Positive Werte werden mit Nullen erweitert: Aus 0011 wird 00000011.
Erkenne die Endpunkte
Das Zweierkomplement erlaubt die gewöhnliche binäre Addition für Ergebnisse, die in den Darstellungsbereich passen. Bei 4 Bits ergibt 0101 plus 1101, also 5 plus −3, die Folge 1 0010. Die vier niederwertigsten Bits ergeben 0010, also 2. So kann dieselbe grundlegende Additionshardware vorzeichenbehaftete und vorzeichenlose Werte verarbeiten.
Anders ist ein Ergebnis außerhalb des Darstellungsbereichs: Bei 8 Bits ergibt 127 plus 1 die Folge 10000000, die als −128 gelesen wird. Außerdem hat −128 bei 8 Bits kein positives Gegenstück. Das Invertieren von 10000000 und die Addition von 1 ergeben wieder 10000000, weil +128 außerhalb des Bereichs liegt. Erweitere die Bitbreite, bevor du diesen positiven Wert bildest.
Wichtige Erkenntnisse
- Das höchstwertige Bit hat im Zweierkomplement mit n Bits den Stellenwert −2ⁿ⁻¹.
- Das Zweierkomplement hat eine Null und einen negativen Wert mehr als positive Werte.
- Kehre das Vorzeichen um, indem du jedes Bit invertierst und innerhalb der festen Bitbreite 1 addierst.
- Die Vorzeichenerweiterung kopiert das höchstwertige Bit in hinzugefügte Stellen.
- Der kleinste negative Wert hat bei derselben Bitbreite kein positives Gegenstück.
- Dasselbe Muster kann vorzeichenbehaftet und vorzeichenlos unterschiedliche Bedeutungen haben.
3Speichere Brüche und Gleitkommawerte
Rechts vom Binärkomma setzen sich die Stellen als Hälften, Viertel und kleinere Brüche fort. Manche Dezimalbrüche enden im Binärsystem, andere benötigen ein unendliches Muster. Die Festkommadarstellung reserviert eine feste Anzahl von Nachkommastellen; die Gleitkommadarstellung speichert neben einem Signifikanden auch eine Skalierung. Wenn du diese Formate liest, verstehst du ihren großen Darstellungsbereich und ihre Rundungsfehler, darunter das bekannte Ergebnis der Addition von 0,1 und 0,2.
3.1 Binärbrüche und Festkommadarstellung
Die erste Stelle nach dem Binärkomma ist ein Halb. Jede weitere Stelle ist halb so groß wie die vorherige: ein Viertel, ein Achtel, ein Sechzehntel und so weiter. Eine 1 trägt diesen Bruch bei; eine 0 lässt ihn weg. Die Stellen links des Kommas behalten ihre üblichen Zweierpotenzen.
Lies und bilde einen Binärbruch
Bei ist der ganzzahlige Anteil 4 plus 1. Der Nachkommaanteil ist ein Halb plus ein Achtel, also ergibt sich .
Um einen Dezimalbruch umzurechnen, multiplizierst du ihn wiederholt mit 2. Der ganzzahlige Anteil jedes Ergebnisses ist die nächste Binärziffer; für die nächste Multiplikation behältst du nur den Nachkommaanteil. Für 0,375:
- , also ist das erste Bit 0.
- , also ist das nächste Bit 1; behalte 0,5.
- , also ist das nächste Bit 1 und das Verfahren endet.
Das Ergebnis ist . Sein Wert ist ein Viertel plus ein Achtel, also 0,375. Anders als die Reste bei der Division ganzer Zahlen werden diese Bits in der gefundenen Reihenfolge gelesen.
Entscheide, ob die Darstellung endet
Kürze den Bruch vollständig. Er hat genau dann eine endliche Binärdarstellung, wenn sein Nenner eine Potenz von 2 ist. Werte wie 0,5, 0,25, 0,75 und 0,375 erfüllen diese Bedingung. Zum Beispiel ist 0,375 gleich 3/8, und acht ist eine Zweierpotenz.
Die Dezimalzahl 0,1 ist 1/10. Ihr Nenner enthält den Faktor 5, daher wiederholt sich ihre Binärdarstellung: . So wie ein Drittel im Dezimalsystem nicht enden kann, kann ein Zehntel im Binärsystem nicht enden. Die kurze Schreibweise „0,1“ benötigt daher eine Näherung, wenn nur eine begrenzte Anzahl von Binärstellen verfügbar ist. Dasselbe Problem betrifft 0,2 und 0,3.
Die Nennerregel folgt aus den Stellen selbst. Eine endliche Folge, die an der f-ten Nachkommastelle endet, lässt sich als ganze Zahl geteilt durch schreiben. Das Kürzen dieses Bruchs kann Faktoren von zwei entfernen, aber keinen anderen Primfaktor in den Nenner einführen. Ein gekürzter Nenner, der fünf enthält, kann daher keiner solchen endlichen binären Summe entsprechen.
Reserviere eine feste Skalierung
Eine Festkommadarstellung weist dem Nachkommaanteil eine feste Anzahl von Bits zu. Mit vier Bits für den ganzzahligen Anteil und vier Bits für den Nachkommaanteil bedeutet 0110,1000 den Wert 6,5. Die kleinste Schrittweite ist und der größte vorzeichenlose Wert ist 1111,1111, also 15,9375.
Gleichwertig dazu wird die gespeicherte acht Bit breite Ganzzahl um den Faktor 1/16 skaliert. Das Muster 01101000 hat den vorzeichenlosen Wert 104; die Division durch 16 ergibt 6,5. Das Komma ist Teil der Interpretation und muss daher nicht als zusätzliches Zeichen gespeichert werden.
Behält man insgesamt acht Bits, verwendet aber fünf für den ganzzahligen Anteil und drei für den Nachkommaanteil, beträgt die Schrittweite 0,125 und das Maximum 31,875. Der Darstellungsbereich wächst, aber die Abstände werden größer. Die Festkommadarstellung stellt Vielfache ihrer Schrittweite innerhalb ihres Bereichs exakt dar.
Eine genaue Anzahl von Cent nutzt eine verwandte Skalierungsidee: Aus 19,99 Geldeinheiten wird die Ganzzahl 1999 Cent. Für Messwerte sehr unterschiedlicher Größen speichert die Gleitkommadarstellung eine bewegliche Skalierung. Dadurch deckt dieselbe Bitbreite einen viel größeren Bereich ab als die Festkommadarstellung.
Wichtige Erkenntnisse
- Die Stellen von Binärbrüchen haben die Werte 1/2, 1/4, 1/8 und so weiter.
- Multipliziere einen Nachkommaanteil mit 2 und lies die ganzzahligen Anteile der Reihe nach.
- Ein gekürzter Bruch hat genau dann eine endliche Binärdarstellung, wenn sein Nenner eine Potenz von 2 ist.
- Bei fester Gesamtbitbreite besteht in der Festkommadarstellung ein Zielkonflikt zwischen Darstellungsbereich und Auflösung der Nachkommastellen.
3.2 Lies und schreibe IEEE-754-Felder
Die Gleitkommadarstellung schreibt einen Wert in wissenschaftlicher Binärschreibweise. Zum Beispiel ist 6,25 gleich . Der vordere Teil ist der Signifikand, und der Exponent legt seine Skalierung fest. IEEE 754 definiert weit verbreitete Formate zum Speichern dieser Teile.
Lerne die Felder kennen
| Format | Insgesamt | Vorzeichen | Exponent | Nachkommaanteil | Bias |
|---|---|---|---|---|---|
| Einfach, binary32 | 32 Bits | 1 | 8 | 23 | 127 |
| Doppelt, binary64 | 64 Bits | 1 | 11 | 52 | 1023 |
Für einen normalen Wert lautet die Interpretation . Dabei ist das Vorzeichenbit, der vorzeichenlose gespeicherte Exponent und das Nachkommafeld. Ein Vorzeichenbit von 0 bedeutet positiv; 1 bedeutet negativ. Wird nur das Vorzeichenbit geändert, kehrt sich das Vorzeichen eines Gleitkommawerts um.
Der gespeicherte Exponent entspricht dem tatsächlichen Exponenten plus dem Exponentenbias. Bei einfacher Genauigkeit wird Exponent 2 zu 129, also 10000001; Exponent −3 wird zu 124, also 01111100. Normale gespeicherte Exponenten reichen von 1 bis 254 und stellen −126 bis 127 dar.
Ein normaler binärer Signifikand beginnt immer mit 1, daher lässt das Format dieses implizite Bit weg. Nur die Bits nach dem Komma gelangen in das Nachkommafeld. Das ergibt 24 signifikante Binärstellen bei einfacher und 53 bei doppelter Genauigkeit.
Kodiere −6,25 Schritt für Schritt
Normalisiere zunächst den Betrag: . Fülle dann die Felder:
- Negativer Wert: Vorzeichen 1.
- Exponent 2: Addiere 127 und erhalte 129, geschrieben 10000001.
- Nachkommaanteil ,1001: Speichere 1001 gefolgt von 19 Nullen.
Das Ergebnis ist 1 10000001 10010000000000000000000 oder 0xC0C80000. Der Nachkommaanteil wird rechts aufgefüllt, weil diese Stellen nach dem Komma fortgesetzt werden. Würde die führende 1 gespeichert, verschöbe sich die Bedeutung des Nachkommaanteils.
Ein negativer tatsächlicher Exponent verschiebt die Skalierung unter eins. Für 0,15625 lautet die Binärdarstellung . Das Vorzeichen in binary32 ist 0 und der gespeicherte Exponent 124, also 01111100. Der Nachkommaanteil beginnt mit 01 und wird rechts aufgefüllt. Die implizite 1 gehört weiterhin zum normalisierten Signifikanden, obwohl die gesamte Zahl kleiner als eins ist.
Dekodiere ein Muster
Das Muster 0x41200000 bei einfacher Genauigkeit zerfällt in 0 10000010 01000000000000000000000. Das Vorzeichen ist positiv. Das Exponentenfeld ist 130, also subtrahierst du 127 und erhältst 3. Ergänze die implizite 1 und erhalte . Schließlich gilt .
Prüfe zuerst reservierte Exponenten
Die Formel für normale Werte beschreibt nicht jedes Muster:
| Exponentenfeld | Nachkommafeld | Bedeutung |
|---|---|---|
| Nur Nullen | Null | +0 oder −0, je nach Vorzeichen |
| Nur Nullen | Von null verschieden | Eine subnormale Zahl mit führender 0 |
| Nur Einsen | Null | Positiv oder negativ unendlich |
| Nur Einsen | Von null verschieden | NaN, „keine Zahl“ |
Subnormale Zahlen stellen sehr kleine Werte ohne die implizite 1 dar. NaN kann aus einer ungültigen numerischen Operation wie 0 geteilt durch 0 entstehen. IEEE 754-2019 definiert diese Formate.
Wichtige Erkenntnisse
- Einfache Genauigkeit hat Felder mit 1, 8 und 23 Bits; doppelte Genauigkeit mit 1, 11 und 52 Bits.
- Subtrahiere beim Dekodieren den Exponentenbias; addiere ihn beim Kodieren.
- Normale Werte haben eine führende 1, die nicht gespeichert wird.
- Fülle das Nachkommafeld rechts mit Nullen auf.
- Exponentenfelder aus lauter Nullen oder lauter Einsen haben besondere Bedeutungen.
- Vorzeichen- und Exponentenfeld einer Gleitkommazahl bilden keine Ganzzahl im Zweierkomplement.
3.3 Darstellungsbereich, Darstellungsgenauigkeit und Rundungsfehler
Ein Gleitkommaformat kann einen riesigen Bereich abdecken, ohne jeden Wert darin darzustellen. Der Exponent bestimmt die Skalierung; das Nachkommafeld bestimmt, wie viele signifikante Bits benachbarte Werte unterscheiden. Darstellungsbereich und Darstellungsgenauigkeit beantworten unterschiedliche Fragen.
Vergleiche einfache und doppelte Genauigkeit
Einfache Genauigkeit reicht bis etwa und hat etwa sieben signifikante Dezimalstellen. Ihr kleinster positiver normaler Wert beträgt etwa . Doppelte Genauigkeit reicht bis etwa , hat etwa 15–16 signifikante Dezimalstellen und einen kleinsten positiven normalen Wert von etwa . Subnormale Zahlen reichen in jedem Format unter das normale Minimum.
Signifikante Stellen werden ab der ersten aussagekräftigen Ziffer gezählt, nicht ab dem Dezimalkomma. Ein großer Exponent erzeugt keine zusätzlichen Bits im Nachkommafeld. Bei einfacher Genauigkeit beträgt der Abstand oberhalb von 1 genau . Zwischen und beträgt der Abstand 2, sodass die Ganzzahl 16.777.217 nicht darstellbar ist, obwohl sie weit unter dem größten endlichen Wert liegt.
Runde auf einen passenden Wert
Die Standardregel von IEEE 754 lautet Runden zum nächsten Wert, bei Gleichstand zur geraden Endziffer. Wähle den näheren darstellbaren Wert; liegt der Wert genau in der Mitte, wähle den, dessen letztes behaltenes Signifikandbit gerade ist. So wird 16.777.217 bei einfacher Genauigkeit auf 16.777.216 gerundet.
Die Differenz zwischen dem beabsichtigten und dem gespeicherten Wert ist der Rundungsfehler. Bei einfacher Genauigkeit wird 0,1 als 0,100000001490116119384765625 gespeichert. Bei doppelter Genauigkeit ist es ungefähr 0,10000000000000000555. Eine höhere Darstellungsgenauigkeit verringert diesen Fehler, kann aber eine periodische Darstellung nicht zum Enden bringen.
Verstehe ein bekanntes Ergebnis
Bei gewöhnlicher Rechnung mit doppelter Genauigkeit nach IEEE 754 erzeugt die Addition von 0,1 und 0,2 ein gespeichertes Ergebnis, das häufig als 0.30000000000000004 angezeigt wird. Es unterscheidet sich von der gespeicherten Näherung für 0,3, daher ist 0.1 + 0.2 == 0.3 in Sprachen wie Python und JavaScript falsch. Vergleiche bei Messergebnissen die Differenz mit einer Toleranz, die zur Größenordnung und zum Zweck der Aufgabe passt.
Viele Werte sind exakt. Doppelte Genauigkeit speichert jede ganze Zahl von bis exakt. Werte wie 0,5 und 0,375 haben ebenfalls kurze Binärdarstellungen, die sowohl in den Signifikanden als auch in den Exponentenbereich passen.
Wähle einen geeigneten Zahlentyp
Für Anzahlen und Kennungen eignen sich Ganzzahlen. Für exakte Geldbeträge eignen sich ganze Untereinheiten wie Cent oder ein Dezimalzahlentyp. Für Messungen und wissenschaftliche Berechnungen eignen sich oft Gleitkommazahlen. Ein Betrag, der für das Format zu groß ist, kann zu unendlich überlaufen; nach der Standardrundungsregel wird bei einfacher Genauigkeit zu positiv unendlich. Sehr kleine Ergebnisse können subnormal werden oder auf null gerundet werden.
Darstellungskonventionen sind von der Speicherung getrennt. Die Schreibweisen „3.14“ und „3,14“ können in verschiedenen Ländern dieselbe Zahl bezeichnen. Ein Programm, das Text liest, muss die jeweilige Konvention kennen; andernfalls könnte es das Komma zurückweisen oder den Wert als 314 lesen. Eine Änderung des gedruckten Trennzeichens verbessert die binäre Darstellungsgenauigkeit nicht.
Wichtige Erkenntnisse
- Der Darstellungsbereich bestimmt die Größenordnung; die Darstellungsgenauigkeit bestimmt den Abstand benachbarter Werte.
- Die Abstände zwischen Gleitkommawerten wachsen mit ihrem Betrag.
- Die Standardregel rundet zum nächsten Wert, bei genauem Gleichstand zum Wert mit geradem letzten Bit.
- Ein kurzer Dezimalbruch kann im Binärsystem dennoch Rundung benötigen.
- Wähle passend zur Aufgabe eine Speicherung als Ganzzahl, Dezimalzahl oder Gleitkommazahl.
4Wandle Zeichen in Codes und Bytes um
Bei Text müssen sich die schreibende und die lesende Software an dieselbe Vereinbarung halten. ASCII gibt einer kleinen Auswahl von Zeichen numerische Codes. Unicode stellt einen gemeinsamen Codebereich für viele Schriftsysteme bereit, während Kodierungen wie UTF-8 die tatsächlichen Bytes festlegen. Die Unterscheidung zwischen einem angezeigten Zeichen, einem Codepunkt und einem Byte hilft dir, Textgrößen zu berechnen und zu erklären, warum eine korrekt gespeicherte Datei als Zeichensalat erscheinen kann.
4.1 ASCII-Codes und ihre Grenzen
Um Text zu speichern, weist ein System Zeichen numerische Codes zu und schreibt diese Zahlen als Bits. Ein Zeichencode funktioniert nur, wenn beim Lesen dieselbe Vereinbarung gilt wie beim Schreiben. Das Byte für einen Buchstaben ist eine kodierte Kennzeichnung, kein winziges Bild dieses Buchstabens.
Lies die ASCII-Tabelle
ASCII, der American Standard Code for Information Interchange, wurde erstmals 1963 veröffentlicht. Er verwendet 7 Bits für 128 Codes mit den Nummern 0–127. Bei byteweiser Speicherung füllt ein ASCII-Code üblicherweise ein Byte mit einer führenden 0.
| Codes | Bedeutung |
|---|---|
| 0–31 und 127 | Steuerzeichen |
| 32 | Leerzeichen |
| 48–57 | Ziffern „0“–„9“ |
| 65–90 | Großbuchstaben „A“–„Z“ |
| 97–122 | Kleinbuchstaben „a“–„z“ |
Satzzeichen belegen die Lücken. Die Codes 32–126 bilden 95 druckbare Zeichen einschließlich des Leerzeichens. Steuerzeichen beeinflussen die Textverarbeitung, ohne ein sichtbares Zeichen zu drucken: Der Tabulator ist 9, der Zeilenvorschub 10 und der Wagenrücklauf 13.
Kodiere eine kurze Zeichenkette
Der Text „Hi!“ hat drei Zeichen. Ihre Dezimalcodes sind 72, 105 und 33; hexadezimal sind es 0x48, 0x69 und 0x21. Als vollständige Bytes wird der Text zu 01001000 01101001 00100001. Das Ausrufezeichen benötigt ebenso wie die Buchstaben einen Code.
Der Code eines ASCII-Kleinbuchstabens liegt um 32 über dem seines Großbuchstabens. „A“ ist 65 oder 01000001, während „a“ 97 oder 01100001 ist. Dieses eine veränderte Bit macht den Unterschied aus. Die Reihenfolge setzt außerdem alle Großbuchstaben vor alle Kleinbuchstaben. Eine einfache Sortierung nach Code setzt daher „Zebra“ vor „apfel“; sie folgt nicht der üblichen Wörterbuchreihenfolge.
Unterscheide ein Ziffernzeichen von einer Zahl
Das Zeichen „7“ hat den Dezimalcode 55 und das Byte 00110111. Die Ganzzahl 7 hat das Byte 00000111. Um den Zahlenwert einer Ziffer aus ihrem ASCII-Code zu erhalten, subtrahierst du 48, den Code für „0“: . Das funktioniert, weil die zehn Zifferncodes aufeinanderfolgen.
Der Speicherbedarf hängt von der gewählten Darstellung ab. Der Text „2026“ benötigt vier ASCII-Bytes, eines pro Ziffer. Die Ganzzahl 2026 passt als vorzeichenloser 16-Bit-Wert in zwei Bytes. Text erhält die Zeichenfolge; eine Ganzzahl stellt den Zahlenwert dar. So kann eine textuelle Kennung etwa führende Nullen erhalten, die bei einer Ganzzahl keinen Unterschied machen.
Um eine längere Zeichenkette zu kodieren, verarbeitest du jedes Zeichen der Reihe nach, einschließlich Leerzeichen, Satzzeichen und Steuerzeichen. Beim Dekodieren wird unter derselben Tabelle jeder Code einzeln zurückübersetzt. Die Reihenfolge ist wichtig: Das Vertauschen zweier gültiger Codes kann weiterhin gültiges ASCII ergeben, erzeugt aber anderen Text. Eine erfolgreiche Zuordnung zeigt, dass Codes erkannt werden, nicht aber, dass sie die beabsichtigte Reihenfolge oder Bedeutung haben.
Erkenne, warum Codeseiten Probleme verursachten
ASCII enthält keine Buchstaben mit Akzenten oder Umlauten wie „é“, „ñ“ oder „ü“ und keine griechischen, kyrillischen, arabischen oder chinesischen Zeichen. Spätere 8-Bit-Codeseiten nutzten die Werte 128–255 für zusätzliche Zeichen, stimmten aber bei diesen Ergänzungen nicht überein.
Zum Beispiel bedeutet das Byte 0xE9 in Latin-1 „é“, in Windows-1251 aber „й“. Windows-1252 ist eine weitere gebräuchliche Codeseite. Ein Bytewert kann daher ein Nicht-ASCII-Zeichen nicht eindeutig bestimmen, ohne dass die Kodierung bekannt ist. Eine falsche Tabelle kann lesbar wirkende Zeichen erzeugen, die dennoch den falschen Text ergeben.
Wichtige Erkenntnisse
- ASCII definiert 128 Codes mit 7 Bits, die üblicherweise einzeln in einem Byte gespeichert werden.
- Druckbare Zeichen umfassen Leerzeichen und Satzzeichen; Steuerzeichen haben andere Aufgaben.
- Ziffernzeichen haben andere Codes als die Ganzzahlen, die sie bezeichnen.
- Verschiedene ältere Codeseiten können demselben Byte unterschiedliche Zeichen zuweisen.
4.2 Unicode-Codepunkte und UTF-Kodierungen
Unicode weist Zeichen aus Schriftsystemen der ganzen Welt Nummern aus einem gemeinsamen Bereich zu, die Codepunkte heißen. „A“ ist U+0041, „é“ ist U+00E9, „Ж“ ist U+0416, „中“ ist U+4E2D und „😀“ ist U+1F600. Die U+-Schreibweise verwendet Hexadezimalzahlen mit mindestens vier Ziffern.
Unterscheide einen Codepunkt von seinen Bytes
Der Codebereich reicht von U+0000 bis U+10FFFF, umfasst also 1.114.112 Positionen, mit mehr als 150.000 zugewiesenen Zeichen. Ein Codepunkt bezeichnet ein Zeichen oder eine reservierte Position; eine Zeichenkodierung bestimmt seine Darstellung als Bytes.
| Kodierung | Speicherbedarf für einen gültigen Zeichencodepunkt |
|---|---|
| UTF-8 | 1–4 Bytes |
| UTF-16 | 2 Bytes bis U+FFFF; 4 Bytes darüber |
| UTF-32 | 4 Bytes |
Der Surrogatbereich U+D800–U+DFFF ist für den Paarungsmechanismus von UTF-16 reserviert; einzelne Surrogate sind keine gültigen Zeichen, die in diesen Formen kodiert werden können. Ein Paar von UTF-16-Codeeinheiten stellt einen ergänzenden Codepunkt dar. Zum Beispiel ist „😀“ in UTF-16 D83D DE00.
Lies die UTF-8-Bytebereiche
UTF-8 erhält ASCII: U+0000–U+007F benötigen ein Byte. U+0080–U+07FF benötigen zwei; gültige Zeichencodepunkte von U+0800–U+FFFF benötigen drei; U+10000–U+10FFFF benötigen vier. Dadurch ist englischer ASCII-Text Byte für Byte mit UTF-8 kompatibel.
Ein Zeichen mit einem Byte beginnt mit 0. Längere Zeichen beginnen bei zwei, drei oder vier Bytes mit 110, 1110 beziehungsweise 11110. Jedes Fortsetzungsbyte beginnt mit 10. Die übrigen Bits tragen den Codepunkt.
Für „é“, U+00E9, lautet der Wert mit 11 Bits 00011101001. Teile ihn in fünf und sechs Bits: 00011 und 101001. Setze sie in 110xxxxx 10xxxxxx ein und erhalte 11000011 10101001 oder C3 A9. Der Codepunkt 00E9 ist nicht selbst die UTF-8-Bytefolge.
Auch beim Kodieren und Dekodieren müssen die Bytepräfixe beachtet werden. Ein UTF-8-Fortsetzungsbyte ist kein eigenständiges ASCII-Byte: Seine ersten beiden Bits sind 10, es gehört also zu einer längeren Zeichenfolge. Wird an einer Bytegrenze ein Teil eines Mehrbytezeichens entfernt, kann eine unvollständige Folge zurückbleiben. Die Speicherlänge und die Grenzen, an denen Text geteilt werden kann, hängen daher zusammen.
Zähle die richtigen Einheiten
„café“ hat vier angezeigte Zeichen, aber fünf UTF-8-Bytes: 63 61 66 C3 A9. „€“ verwendet E2 82 AC, also drei Bytes; „中“ verwendet E4 B8 AD, ebenfalls drei; „😀“ verwendet F0 9F 98 80, also vier. Eine Bytegrenze kann daher weniger Zeichen zulassen, als ihr Zahlenwert nahelegt.
Ein angezeigtes Zeichen kann auch mehrere Codepunkte enthalten. „é“ kann U+00E9 sein oder „e“ gefolgt von U+0301, einem kombinierenden Akut. Die zweite Form benötigt drei UTF-8-Bytes, 65 CC 81. Die Unicode-Normalisierung wandelt gleichwertige Folgen zum Vergleich in eine gemeinsame Form um. Das angezeigte Emoji „👍🏽“ enthält zwei Codepunkte, U+1F44D und U+1F3FD, und benötigt insgesamt acht UTF-8-Bytes.
Untersuche Zeichensalat
Wird das UTF-8-Wort „café“ als Windows-1252 gelesen, wird daraus „café“: C3 und A9 werden als getrennte Zeichen behandelt. Dieser Zeichensalat entsteht durch Dekodieren mit der falschen Kodierung. Korrektes Dekodieren kann den Text wiederherstellen, solange die ursprünglichen Bytes intakt bleiben. Eine Webseite kann ihre Kodierung mit <meta charset="utf-8"> angeben.
Wichtige Erkenntnisse
- Ein Codepunkt bezeichnet ein Zeichen; eine Kodierung bestimmt seine Bytes.
- UTF-8 verwendet ein bis vier Bytes und erhält ASCII unverändert.
- Fortsetzungsbytes in UTF-8 beginnen mit 10.
- Ein angezeigtes Zeichen, ein Codepunkt und ein Byte sind unterschiedliche Zähleinheiten.
- Die Unicode-Normalisierung kann gleichwertige Zeichenfolgen in dieselbe Form bringen.
- Dekodieren mit der falschen Kodierung kann Zeichensalat erzeugen.
5Miss Bilder und Ton in Bits
Bilder und Aufnahmen wandeln visuelle und akustische Details in Zahlen um. Eine Rastergrafik speichert ein Raster von Pixelwerten; abgetasteter Ton speichert Messwerte, die in regelmäßigen Abständen aufgenommen werden. Ihr Speicherbedarf hängt davon ab, wie viele Werte gespeichert werden und wie viele Bits jeder Wert benötigt. Diese Entscheidungen beeinflussen auch, welche Details erhalten bleiben. Vektorzeichnungen und MIDI verfolgen einen anderen Ansatz: Sie beschreiben Formen oder Noten als Anweisungen, die ein Gerät später in ein Bild oder Ton umwandelt.
5.1 Pixel, RGB, Farbpaletten und Transparenz
Eine Rastergrafik ist ein Raster aus Pixeln. Jedes Pixel enthält einen Farbwert. Breite und Höhe geben die Auflösung des Bildes an: 1920 mal 1080 bedeutet Pixel. Die Pixelanzahl beschreibt das Raster, nicht seine gedruckte Größe in Metern.
Weise jedem Pixel genügend Bits zu
Die Farbtiefe ist die Anzahl der Bits, die für die Farbe eines Pixels verwendet werden. Eine Tiefe von Bits erlaubt mögliche Codes. Ein Bit kann zwei Farben unterscheiden. Graustufen mit acht Bits können 256 Intensitäten unterscheiden, üblicherweise von 0 für Schwarz bis 255 für Weiß.
Ein einfaches Bild mit 3 mal 3 Pixeln kann 1 für Schwarz und 0 für Weiß verwenden. Ein schwarzes Pluszeichen wird durch die Zeilen 010, 111 und 010 dargestellt. Neun Pixel mit je einem Bit benötigen neun Bits an Pixelinformationen. Die tatsächliche Speicherung einer Datei kann über diese Bits hinaus Füllbits und andere Informationen enthalten.
Mische Licht mit RGB
RGB speichert die Intensitäten von rotem, grünem und blauem Licht. Mit 8 Bits pro Kanal reicht jede Intensität von 0 bis 255, und ein Pixel benötigt 24 Bits. Die Anzahl der möglichen Farben ist .
| RGB-Werte | Farbe |
|---|---|
| (0, 0, 0) | Schwarz |
| (255, 255, 255) | Weiß |
| (255, 0, 0) | Rot |
| (0, 0, 255) | Blau |
| (255, 255, 0) | Gelb |
RGB ist die additive Mischung von Licht. Rotes und grünes Licht ergeben zusammen Gelb. Eine Vorhersage anhand des Mischens von Malfarben beruht auf einem anderen Vorgang und liefert das falsche Modell für einen Bildschirm.
Lies Hexadezimalfarbcodes
Eine Webfarbe verwendet #RRGGBB: zwei Hexadezimalziffern für Rot, dann Grün, dann Blau. #FF8000 bedeutet (255, 128, 0), ein Orange. #808080 bedeutet (128, 128, 128), ein mittleres Grau; gleiche Kanalwerte ergeben ein Grau. #0000FF ergibt den größten Blauwert bei Rot und Grün gleich null.
Jedes Paar ist ein Byte. Daher ist FF gleich 255 und kein Paar getrennter Farbintensitäten. Das # kennzeichnet den gesamten RGB-Code und belegt keinen Kanal.
Das RGB- und das Palettenmodell lösen das Nachschlagen eines Pixelwerts unterschiedlich. Bei direktem RGB liefert das Lesen des Pixels sofort seine drei Kanalintensitäten. Bei indizierter Farbe liefert es eine Eintragsnummer, und ein zweites Nachschlagen liefert die Intensitäten. Eine Änderung eines Paletteneintrags kann daher viele angezeigte Pixel mit demselben Index ändern, selbst wenn ihre gespeicherten Pixelindizes unverändert bleiben.
Speichere einen Palettenindex
Wenn ein Bild wenige Farben verwendet, kann es eine Farbpalette speichern, eine Tabelle der ausgewählten Farben. Ein Pixel speichert dann einen Index in dieser Tabelle. Eine Palette mit 16 Farben benötigt vier Bits pro Pixel, weil vier Bits 16 Einträge unterscheiden. Die Palette selbst benötigt ebenfalls Speicherplatz. GIF verwendet bis zu 256 Palettenfarben und erlaubt damit einen 8-Bit-Index pro Pixel.
Füge Transparenz hinzu
Ein Alphakanal beschreibt die Deckkraft. Eine übliche 8-Bit-Skala verwendet 0 für vollständig transparent und 255 für vollständig deckend; Zwischenwerte stehen für teilweise Transparenz. Fügt man diesen Kanal zu 24-Bit-RGB hinzu, erhält man 32-Bit-RGBA. Alpha ist von Rot, Grün und Blau getrennt: Ein vollständig transparentes Pixel kann weiterhin gespeicherte Farbwerte haben, die im endgültigen Bild nicht sichtbar sind.
Wichtige Erkenntnisse
- Eine Rastergrafik speichert ein Raster von Pixelwerten.
- Die Farbtiefe bestimmt die Anzahl der verfügbaren Farbcodes pro Pixel.
- Gewöhnliches RGB verwendet drei Kanäle mit je 8 Bits, insgesamt 24 Bits.
- Ein Palettenindex wählt eine Farbe aus einer Tabelle aus.
- Ein Alphakanal ergänzt Informationen zur Deckkraft; 8-Bit-Alpha macht aus RGB ein 32-Bit-RGBA.
5.2 Berechne den Speicherbedarf von Bildern und Videos
Die Pixeldaten einer unkomprimierten Rastergrafik wachsen mit ihrer Pixelanzahl und den Bits pro Pixel. Wenn du die Einheiten bei jedem Schritt mitführst, kannst du die Informationsmenge von der Bytegröße unterscheiden, die ein Dateibetrachter anzeigt.
Berechne die Pixeldaten
Verwende . Dividiere für die Anzahl der Bytes durch 8. Breite und Höhe müssen multipliziert werden, weil jede Zeile über die gesamte Breite Pixel enthält.
Bei 1920 mal 1080 mit 24 Bits pro Pixel erhältst du zunächst 2.073.600 Pixel. Multipliziere mit 24 für 49.766.400 Bits und dividiere dann durch 8 für 6.220.800 Bytes. Das sind etwa 6,2 MB oder 5,93 MiB. Der Einheitenwechsel ändert die zugrunde liegenden Pixeldaten nicht.
Bei 640 mal 480 mit 8-Bit-Graustufen gibt es 307.200 Pixel. Je acht Bits ergeben 2.457.600 Bits; die Division durch 8 ergibt 307.200 Bytes, etwa 307 kB. Hier ist die endgültige Anzahl der Bytes gleich der Pixelanzahl, weil jedes Pixel ein Byte benötigt.
Sage Änderungen vor dem Rechnen voraus
Eine Verdopplung der Breite verdoppelt die Pixel in jeder Zeile. Eine Verdopplung der Höhe verdoppelt die Zeilen. Werden beide verdoppelt, vervierfachen sich daher Pixelanzahl und Speicherbedarf. Eine Erhöhung der Farbtiefe von 8 auf 24 Bits pro Pixel verdreifacht den Speicherbedarf bei gleicher Auflösung. Ändern sich beide Größen, werden diese Faktoren multipliziert.
Die direkte Rechnung ergibt die Pixeldaten, nicht unbedingt eine vollständige Bilddatei. Eine Datei speichert auch Metadaten, etwa Breite, Höhe, Farbtiefe und Format. Ein Foto kann Kameraeinstellungen, Datum und Ort enthalten. Auch Palettentabellen, Dateiköpfe, Füllbits und Kompression können die endgültige Größe in Bytes verändern.
Berechne bei Farbtiefen unter acht Bits vor dem Umrechnen die gesamten Nutzdaten in Bits. Ein 1-Bit-Bild mit 100 mal 60 Pixeln enthält 6.000 Pixelbits oder 750 gepackte Bytes. Würde man jedes Pixel als ein Byte behandeln, überschätzte man diese Nutzdaten um das Achtfache. Wenn ein Format jede Zeile bis zu einer bestimmten Grenze auffüllt, müssen diese Füllbits gesondert hinzugefügt werden; die Farbtiefe ändert sich dadurch nicht.
Erweitere die Rechnung auf Video
Ein Video zeigt eine Folge von Bildern, die Einzelbilder heißen. Bei 30 Einzelbildern pro Sekunde benötigt ein RGB-Video mit 1920 mal 1080 pro Sekunde Bytes unkomprimierte Bilddaten, etwa 187 MB/s. Die Multiplikation mit der Dauer ergibt die gesamten Bilddaten. Ton benötigt zusätzlichen Speicherplatz.
Diese große Datenrate erklärt, warum gewöhnliche Videodateien komprimiert werden. Die Datenrate eines komprimierten Videos ist eine eigene Größe; sie lässt sich nicht allein aus der Auflösung ableiten.
Vergleiche Raster- und Vektorgrafiken
| Rastergrafik | Vektorgrafik |
|---|---|
| Speichert ein Raster aus Farbwerten | Speichert Formen und Zeichenanweisungen |
| Eignet sich für Fotos und Texturen | Eignet sich für Logos, Diagramme und Schriftumrisse |
| Beim Vergrößern des Rasters werden Pixel sichtbar | Formen können in größerem Maßstab neu gezeichnet werden |
Eine Vektordatei kann eine Linie von (0|0) nach (100|50) oder einen Kreis durch Mittelpunkt, Radius und Füllung beschreiben. Sie muss nicht für jeden Punkt innerhalb des Kreises einen eigenen Farbwert speichern. Einfache Zeichnungen können daher klein sein. SVG ist ein gängiges Vektorformat.
Ein Bildschirm benötigt trotzdem Pixel. Die Rasterung wandelt die Formen in ein Pixelraster der gewünschten Größe um. Das Skalieren von Vektoranweisungen erhält die Geometrie der Form; das Vergrößern einer vorhandenen Rastergrafik kann keine Bilddetails zurückgewinnen, die ihr ursprüngliches Raster nie aufgezeichnet hat.
Wichtige Erkenntnisse
- Die Bits einer unkomprimierten Rastergrafik entsprechen Breite × Höhe × Bits pro Pixel.
- Dividiere Bits durch 8, bevor du Bytes angibst.
- Die Verdopplung beider Abmessungen vervierfacht die Pixeldaten bei gleicher Farbtiefe.
- Unkomprimierte Videobilddaten entsprechen Bytes pro Einzelbild × Bildrate × Dauer.
- Durch Metadaten und Kompression unterscheidet sich die Dateigröße vom Ergebnis einer reinen Pixelrechnung.
- Vektorgrafiken speichern Formen, die für die Anzeige gerastert werden.
5.3 Taste Ton ab und berechne die Größe der Audiodaten
Schall ist eine Schwingung des Luftdrucks. Ein Mikrofon wandelt ihn in ein analoges elektrisches Signal um, das sich kontinuierlich verändert. Ein Analog-Digital-Wandler nimmt in regelmäßigen Abständen Messungen vor und speichert jeden Abtastwert als Zahl.
Unterscheide Zeitauflösung und Messgenauigkeit
Die Abtastrate, gemessen in Hertz, ist die Anzahl der Abtastwerte pro Sekunde und Kanal. Eine Rate von 44.100 Hz entspricht 44,1 kHz. CDs verwenden 44,1 kHz, Videotonspuren üblicherweise 48 kHz und herkömmliche Telefonübertragungen 8 kHz. Die Abtastwerte halten Werte zu diesen Zeitpunkten fest; sie zeichnen nicht jeden dazwischenliegenden Moment kontinuierlich auf.
Die Bittiefe bestimmt, wie viele Stufen jedem Abtastwert zur Verfügung stehen. Acht Bits ergeben 256 Stufen, 16 ergeben 65.536 und 24 ergeben 16.777.216. Das Runden eines Messwerts auf eine Stufe heißt Quantisierung. Die Differenz zum ursprünglichen Messwert erzeugt einen Quantisierungsfehler, der als Rauschen hörbar sein kann. Mehr Bits ermöglichen feinere Stufen und verringern diesen Fehler.
Die Abtastrate bestimmt die zeitliche Auflösung; die Bittiefe bestimmt die Auflösung der gemessenen Amplitude. Eine Erhöhung der einen ersetzt keine Erhöhung der anderen.
Erfasse den Frequenzbereich
Das Abtasttheorem verlangt eine Abtastrate, die mehr als doppelt so hoch ist wie die höchste zu erfassende Frequenz. Um 20 kHz zu erfassen, muss die Rate über 40 kHz liegen. Genau das Doppelte reicht für ein beliebiges Signal an dieser Grenze nicht aus.
Bei 44,1 kHz liegt die theoretische Grenze unter 22,05 kHz. Der Abstand oberhalb von etwa 20 kHz, der ungefähren oberen menschlichen Hörgrenze, lässt Raum für einen Anti-Aliasing-Filter. Frequenzen oberhalb der halben Abtastrate können als falsche tiefere Frequenzen erscheinen; dieser Effekt heißt Aliasing. Ein Wandler filtert diese hohen Frequenzen vor der Abtastung heraus.
Eine Rate von 44.100 Hz gilt für jeden Kanal, nicht für die Aufnahme als zusammengefassten Datenstrom. Stereo speichert daher 88.200 Abtastwerte pro Sekunde. Der Kanalfaktor gehört in die Speicherformel, weil jeder Zeitpunkt einen linken und einen rechten Wert hat. Er verdoppelt nicht die höchste Frequenz, die jeder Kanal erfassen kann; diese Grenze folgt weiterhin aus seiner eigenen Abtastrate.
Berechne unkomprimierte Audiodaten
Mono hat einen Kanal; Stereo hat zwei. Die Größe der Nutzdaten ist
Für eine Stereoaufnahme von drei Minuten bei 44.100 Hz und 16 Bits beträgt die Rate bit/s. Multipliziere mit 180 Sekunden für 254.016.000 Bits und dividiere dann durch 8: 31.752.000 Bytes, etwa 31,8 MB.
Eine Monoaufnahme von zehn Sekunden bei 8.000 Hz und 8 Bits ergibt Bits oder 80.000 Bytes. Eine Stereoaufnahme mit denselben Einstellungen würde doppelt so viel benötigen.
Wähle, was gespeichert wird
Höhere Abtastraten und Bittiefen benötigen mehr Platz. CD-Einstellungen reichen zum Anhören im Allgemeinen aus; Studios verwenden oft 24 Bits und 48 kHz oder mehr, um Spielraum für Verarbeitung und Bearbeitung zu haben.
MIDI zeichnet Notenanweisungen auf: welche Noten wann beginnen, mit welcher Stärke und welche Instrumente gewählt werden. Das kann viel kleiner sein als eine abgetastete Darbietung, aber die Wiedergabe hängt von den verfügbaren Instrumentenklängen ab. MIDI kann die Melodie eines Sängers als Noten beschreiben; die tatsächlich aufgenommene Stimme kann es nicht enthalten.
Wichtige Erkenntnisse
- Die Abtastrate zählt Messungen pro Sekunde; die Bittiefe zählt Bits pro Messung.
- Die Quantisierung rundet einen Abtastwert auf eine der verfügbaren Stufen.
- Die Abtastrate muss mehr als doppelt so hoch sein wie die höchste zu erfassende Frequenz.
- Anti-Aliasing-Filter entfernen hohe Frequenzen vor der Abtastung.
- Die Anzahl der Audiobits entspricht Abtastrate × Bittiefe × Kanäle × Sekunden.
- MIDI speichert Anweisungen für eine Darbietung, keine aufgezeichnete Wellenform.
6Komprimiere Daten und wähle ein Format
Kompression verringert die Anzahl der Bits, die zum Speichern oder Übertragen von Daten benötigt werden. Manche Verfahren ersetzen wiederholte Informationen durch kürzere Beschreibungen, die sich exakt rückgängig machen lassen. Andere entfernen Details aus Bildern und Ton, um kleinere Dateien zu erzielen. Du wirst einfache Codes nachvollziehen, die für einen Dekodierer benötigten Informationen berücksichtigen und ein Format danach wählen, was erhalten bleiben muss. Eine Datei zur Bearbeitung oder exakten Wiederherstellung hat andere Anforderungen als ein fertiger Datenstrom zum Anhören oder Ansehen.
6.1 Verlustfreie Codes und ihre Grenzen
Verlustfreie Kompression ermöglicht es, beim Dekomprimieren die ursprünglichen Bits exakt wiederherzustellen. Text, Programmdateien, Tabellen und andere exakte Daten benötigen diese Eigenschaft. ZIP, PNG, GIF und FLAC sind bekannte verlustfreie Formate. Sie nutzen Redundanz: wiederholte oder vorhersehbare Informationen, die sich kürzer beschreiben lassen.
Beschreibe wiederholte Folgen
Die Lauflängenkodierung, kurz RLE, ersetzt aufeinanderfolgende gleiche Zeichen durch eine Anzahl und das Zeichen. Die Zeichenkette „AAAAAABBBCCCCCCCCD“ mit 18 Zeichen wird zu „6A3B8C1D“, nach dieser Konvention aus Anzahl und Zeichen also acht Zeichen. Beim Dekodieren wird jedes Paar erweitert: sechs A, drei B, acht C und ein D.
Dieselbe Idee eignet sich für einfarbige Bildbereiche. Die Pixelzeile 0000000011110000 lässt sich als acht Nullen, vier Einsen und vier Nullen beschreiben. Eine echte Datei muss festlegen, wie Anzahlen und Zeichen gespeichert werden, damit die Dekodierung eindeutig ist.
Kurze Folgen können RLE größer machen. Aus „ABCD“ wird „1A1B1C1D“, was die Zeichenanzahl schon vor einem Dateikopf verdoppelt. Kompression funktioniert nur, wenn die Einsparung den Aufwand für die Beschreibung des Musters übersteigt.
Verweise auf eine wiederholte Folge
Ein Wörterbuchverfahren ersetzt eine wiederholte Folge durch einen Verweis. Verfahren der LZ-Familie liegen Formaten wie ZIP und PNG zugrunde. In „hallo und ja hallo“ kann das zweite „hallo“ durch die Anweisung ersetzt werden, 13 Zeichen zurückzugehen und fünf zu kopieren. Leerzeichen zählen als Zeichen. Der Dekodierer verfügt bereits über den früheren Text und kann die Folge anhand des Verweises wiedergeben.
Gib häufigen Zeichen kürzere Codes
Ein Code variabler Länge verwendet unterschiedliche Bitlängen für verschiedene Zeichen. Die Huffman-Kodierung erstellt Codes anhand der Zeichenhäufigkeiten. In „ABRACADABRA“ erscheint A fünfmal, B und R je zweimal und C und D je einmal. Ein Code fester Länge für fünf Zeichen benötigt drei Bits pro Zeichen, also 33 Bits für elf Buchstaben.
Ein passender präfixfreier Code ist A = 0, B = 10, R = 110, C = 1110 und D = 1111. Die kodierten Daten benötigen Bits. Die Codetabelle verursacht zusätzlichen Aufwand, sodass 23 Bits allein nicht die vollständige Dateigröße sind.
Präfixfrei bedeutet, dass kein Zeichencode den Anfang eines anderen Zeichencodes bildet. Das Lesen von 0110 ergibt daher A gefolgt von R, ohne Trennzeichen zu benötigen. Dank dieser Eigenschaft erkennt ein Huffman-Dekodierer ein Zeichen, sobald sein Code endet.
Der Dekodierer muss neben den Nutzdaten auch die Kodierungskonvention kennen. Für einen Datenstrom nach Huffman-Art benötigt er die Zuordnung von Zeichen zu Codes; bei RLE muss er eine Anzahl von einem Zeichen unterscheiden können. Eine kleine Nachricht kann Bits bei den Nutzdaten sparen und insgesamt dennoch größer werden, wenn diese Beschreibung hinzukommt. Vergleiche die vollständigen Größen des Originals und der kodierten Daten, um zu entscheiden, ob ein Verfahren die Datei tatsächlich verkleinert hat.
Miss Einsparungen und erkenne Grenzen
Das Kompressionsverhältnis ist die ursprüngliche Größe geteilt durch die komprimierte Größe. Die Verkleinerung von 6 MB auf 2 MB ergibt 3:1. Verwende auf beiden Seiten dieselbe Einheit.
Kein verlustfreies Verfahren kann jede mögliche Datei verkürzen. Es gibt verschiedene Eingaben mit n Bits, aber nur Bitfolgen, die kürzer als n Bits sind. Exakte Wiederherstellung verlangt, dass verschiedene Eingaben unterscheidbar bleiben; daher können nicht alle kürzere Ausgaben erhalten. Zufallsdaten und bereits komprimierte Dateien schrumpfen oft kaum oder wachsen durch zusätzlichen Aufwand.
Wichtige Erkenntnisse
- Verlustfreies Dekomprimieren stellt die ursprünglichen Bits exakt wieder her.
- RLE beschreibt aufeinanderfolgende gleiche Zeichen mithilfe ihrer Anzahl.
- Wörterbuchverfahren ersetzen wiederholte Folgen durch Verweise.
- Die Huffman-Kodierung weist anhand der Zeichenhäufigkeiten kürzere Codes zu.
- Ein präfixfreier Code macht Zeichengrenzen ohne Trennzeichen erkennbar.
- Das Kompressionsverhältnis vergleicht die ursprüngliche mit der komprimierten Größe.
- Kein verlustfreies Verfahren verkürzt jede mögliche Eingabe.
6.2 Verlustbehaftete Formate und Qualitätsentscheidungen
Verlustbehaftete Kompression entfernt Informationen, um die Dateigröße zu verringern. Beim Dekomprimieren entsteht eine Version, die dem Original ähnelt, bei der aber einige Details dauerhaft fehlen. Fotos, Musik, Sprache und Video können ausgewählte Verluste vertragen, die bei exakten Text- oder Programmdaten nicht hinnehmbar wären.
Komprimiere Bilder nach visueller Bedeutung
JPEG nutzt die unterschiedliche Empfindlichkeit des menschlichen Sehens für Helligkeit, Farbe und feine Details. Ein typisches JPEG verringert die Auflösung feiner Farbdetails und rundet feine Bilddetails, die in Blöcken von 8 mal 8 dargestellt werden. Die Qualitätseinstellung steuert, wie stark Informationen entfernt werden. Stärkere Kompression kann Blockbildung, Unschärfe oder Überschwinger nahe scharfen Kanten erzeugen.
Ein Foto kann oft etwa 10:1 bei geringem sichtbarem Verlust erreichen. Bei diesem Verhältnis würde ein Bild mit 6.220.800 Bytes unkomprimierter Pixeldaten etwa 622.080 komprimierte Bytes benötigen, ungefähr 0,6 MB. Das Verhältnis ist ein Beispiel, keine feste Eigenschaft jedes JPEG.
Komprimiere Ton nach Hörbarkeit
MP3 und AAC verwenden wahrnehmungsbasierte Kodierung. Ein leiser Klang kann durch einen lauteren Klang mit benachbarter Frequenz verdeckt werden, sodass der Kodierer weniger Bits für Informationen aufwenden kann, die ein Hörer wahrscheinlich nicht wahrnimmt. Eine kleinere Datei kann trotzdem sehr ähnlich wie das Original klingen.
Bei konstanter Bitrate entspricht die Größe in Bits der Bitrate mal Dauer. Bei 128 kbit/s benötigt eine Aufnahme von drei Minuten Bits oder 2.880.000 Bytes, etwa 2,9 MB. Das ist etwa ein Elftel der 1.411,2 kbit/s von unkomprimiertem CD-Audio. Die komprimierte Rate beschreibt bereits den kodierten Datenstrom; multipliziere sie nicht erneut mit der ursprünglichen Bittiefe.
Nutze Ähnlichkeiten zwischen Videoeinzelbildern
Benachbarte Einzelbilder zeigen oft fast dieselbe Szene. Videoformate wie H.264 und AV1 komprimieren Bilddetails und beschreiben viele Einzelbilder durch Änderungen oder Vorhersagen anhand anderer Einzelbilder. Dadurch werden wiederholte Informationen sowohl über die Zeit als auch innerhalb jedes Bildes entfernt.
Stimme das Format auf den Zweck ab
| Verwendung | Geeignete Wahl | Grund |
|---|---|---|
| Exakter Text, Code oder Daten | Verlustfreies Archiv | Jedes Bit muss erhalten bleiben |
| Foto zum Teilen | JPEG oder ein anderes verlustbehaftetes Bildformat | Kleine Größe bei akzeptablem sichtbarem Verlust |
| Bildschirmfoto oder Logo | PNG | Erhält scharfe Kanten und einheitliche Farbflächen |
| Musik für Streaming | AAC, MP3 oder Opus | Spart Übertragungskapazität |
| Audio-Master zur Archivierung | FLAC | Exakte Wiederherstellung der Audioabtastwerte |
Bewahre für spätere Bearbeitung ein verlustfreies Original auf. Wiederholtes verlustbehaftetes Dekodieren und erneutes Kodieren kann Generationsverlust verursachen. Die Umwandlung eines bereits verlustbehafteten JPEG in PNG erhält dessen aktuelle dekodierte Pixel, kann aber zuvor entfernte Details nicht wiederherstellen.
Stärkere Kompression kann Qualität, Rechenzeit oder beides kosten. Die passende Wahl hängt davon ab, was eine Datei enthält und wie sie verwendet wird; die kleinste Datei ist nicht immer die nützlichste.
Wichtige Erkenntnisse
- Verlustbehaftete Kompression entfernt ausgewählte Informationen dauerhaft.
- JPEG nutzt Eigenschaften der visuellen Wahrnehmung; verlustbehaftete Audioformate nutzen wahrnehmungsbasierte Kodierung.
- Die Größe eines komprimierten Datenstroms ergibt sich aus Bitrate × Dauer.
- Bewahre ein verlustfreies Original auf, wenn spätere Bearbeitung oder exakte Wiederherstellung wichtig ist.
- Die Umwandlung einer verlustbehafteten Datei in ein verlustfreies Format kann entfernte Informationen nicht zurückbringen.
Binärsystem und Datendarstellung: Beispiele
1Erstelle einen Code und lies seine Bits
12 Schritte
- 1EinführungEin Muster, mehrere Lesarten
Ein gespeichertes Muster hat zwei getrennte Merkmale: wie viele Bits es belegt und wie es beim Lesen interpretiert wird. Die acht Bits 01000001 könnten eine Zahl, ein Textzeichen oder eine Farbintensität bedeuten.
Wir wählen zuerst genügend Bits, um eine Reihe von Werten zu unterscheiden, und lesen dann ein Zahlenmuster mithilfe binärer Stellenwerte und der Hexadezimaldarstellung. Eine andere Schreibweise ändert, was du aufschreibst, erhält aber den Wert.
- 2ErklärungZähle Möglichkeiten durch Verdopplung
Jedes Bit hat zwei Möglichkeiten, daher verdoppelt jedes zusätzliche Bit die Anzahl der Muster. Zwei Bits ergeben 00, 01, 10 und 11; drei Bits ergeben acht Muster. Allgemein ergeben n Bits Muster.
Um 26 Buchstaben zu unterscheiden, reichen vier Bits nicht aus, weil sie nur 16 Muster ergeben. Fünf Bits ergeben 32 und lassen sechs Muster ungenutzt. Ein Code muss nicht jedes verfügbare Muster verwenden.
- 3HerausforderungWähle ein Feld für Kategorien
Ein Gerät muss 90 Kategorien unterscheiden. Wie viele Bits braucht es mindestens, um sie zu kodieren? Wie viele Muster bleiben ungenutzt?
---reveal---
Sechs Bits ergeben 64 Muster, also zu wenige. Sieben ergeben 128, daher benötigt das Feld sieben Bits und lässt 38 Muster ungenutzt. Die größte numerische Kennung könnte 89 sein, wenn die Kennungen bei null beginnen; dieser Endpunkt unterscheidet sich von der Anzahl von 90 Kategorien.
- 4VerbindungAchte auf die Groß- und Kleinschreibung der Einheit
Ein Byte hat acht Bits. Daher ist die Groß- oder Kleinschreibung des Einheitenbuchstabens wichtig: b bedeutet Bit und B bedeutet Byte. Eine Verbindung mit 40 Mbit/s hat vor dem Overhead eine ideale Obergrenze für die Nutzdaten von 5 MB/s.
Die Einheitenpräfixe sind eine weitere Frage. Ein MB bedeutet eine Million Bytes, während ein MiB 1.048.576 Bytes bedeutet. Die Umrechnung einer gespeicherten Menge von MB in MiB ändert den angezeigten Zahlenwert, ohne Daten zu entfernen.
- 5ErklärungOrdne die binären Stellenwerte zu
Der Stellenwert ganz rechts im ganzzahligen Anteil ist 1. Nach links folgen 2, 4, 8, 16, 32, 64 und so weiter. Eine 1 wählt einen Stellenwert aus und eine 0 lässt ihn aus.
Für 101101 sind die gewählten Stellenwerte 32, 8, 4 und 1, zusammen 45. Führende Nullen können eine Bitbreite auffüllen, ohne diese Stellenwerte zu ändern. Eine fehlende Null innerhalb des Musters würde einige Ziffern verschieben und den Wert ändern.
- 6BeispielWähle die Potenzen für 156
Die größte Zweierpotenz, die 156 nicht übersteigt, ist 128. Subtrahiere sie, sodass 28 bleibt. Die Stellenwerte 64 und 32 passen nicht, erhalten also Nullen.
Ziehe 16 von 28 ab, sodass 12 bleibt. Ziehe 8 ab, sodass 4 bleibt, und dann 4, um null zu erreichen. Die letzten beiden Stellenwerte 2 und 1 erhalten Nullen. Über die Stellenwerte 128 bis 1 ergeben sich die Bits 10011100. Wenn du jede ungenutzte Stelle beibehältst, verschieben sich die gewählten Potenzen nicht.
- 7TippKehre die Reihenfolge der Divisionsreste um
Wiederholte Division ist ein anderer Weg zum selben Muster. Die Division einer ganzen Zahl durch zwei ergibt ihr letztes Bit als Rest. Die Division des Quotienten findet das nächste Bit links davon.
Für 156 entstehen die Reste als 0, 0, 1, 1, 1, 0, 0, 1. Lies vom letzten bis zum ersten, um 10011100 zu erhalten. Die umgekehrte Reihenfolge ist nötig, weil die Division zuerst die niederwertigste Stelle findet.
- 8HerausforderungRechne einen neuen Wert um und prüfe ihn
Schreibe die Dezimalzahl 109 mit acht Binärstellen und erkläre dann anhand deines Ergebnisses, ob 109 ungerade ist.
---reveal---
Die gewählten Potenzen sind 64, 32, 8, 4 und 1, also lautet das Muster 01101101. Ihre Summe ist 109, was die Umrechnung bestätigt. Das letzte Bit ist 1; alle anderen Stellen tragen gerade Größen bei, sodass eine ungerade ganze Zahl entsteht. Die führende Null füllt das Byte, ohne den Wert zu ändern.
- 9ErklärungErsetze Nibbles durch Hexadezimalziffern
Das Hexadezimalsystem hat sechzehn Ziffern: 0–9, gefolgt von A–F für zehn bis fünfzehn. Vier Bits unterscheiden ebenfalls sechzehn Muster, daher bezeichnet jede Hexadezimalziffer ein Nibble.
Teile 10011100 in 1001 und 1100. Die erste Gruppe ist neun und die zweite zwölf, geschrieben C. Das Ergebnis ist 0x9C. Die Hexadezimaldarstellung benötigt viermal weniger Ziffern als die Binärdarstellung und behält dabei den direkten Bezug zu den Gruppen innerhalb des Bytes.
- 10BeispielGruppiere ein kurzes Muster von rechts
Um 101101 umzurechnen, bilde Gruppen von rechts: 10 und 1101. Fülle die Gruppe ganz links zu 0010 auf. Die Gruppen ergeben nun hexadezimal 2 und D, also ist der Wert 0x2D.
Prüfe mit hexadezimalen Stellenwerten: Zweimal sechzehn plus dreizehnmal eins ergibt 45. Eine Gruppierung von links würde die letzte kurze Gruppe an die falsche Stelle setzen. Innerhalb einer vollständigen Hexadezimalumrechnung muss jede Ziffer alle vier Bits behalten.
- 11HerausforderungVerbinde Bits, Bitbreite und Hexadezimaldarstellung
Ein vorzeichenloses Feld mit fester Bitbreite speichert 0xB4. Wie viele Bits zeigen seine zwei Hexadezimalziffern, wie lautet sein Binärmuster und welchen Dezimalwert enthält es?
---reveal---
Zwei Hexadezimalziffern stellen acht Bits dar. B wird zu 1011 und 4 zu 0100 erweitert, also lautet das Byte 10110100. Seine gewählten Stellenwerte ergeben zusammen 128 + 32 + 16 + 4 = 180. Gleichwertig dazu ergibt elfmal sechzehn plus vier den Wert 180.
- 12ZusammenfassungDrei Prüfungen für einen gespeicherten Wert
Prüfe Kapazität, Schreibweise und Einheiten getrennt. Ein Feld benötigt genügend Muster für alle seine möglichen Werte. Die Binärdarstellung wählt Zweierpotenzen aus; die Hexadezimaldarstellung gruppiert diese Bits von rechts in Vierergruppen.
Der gespeicherte Wert bleibt bei einem Wechsel der geschriebenen Basis oder der Speichereinheit erhalten. Eine andere Dateninterpretation kann denselben Bits eine andere Bedeutung geben, daher gehören das Muster und die Regel zum Lesen des Musters zusammen.
2Lies vorzeichenbehaftete Werte und beachte ihre Bitbreite
11 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungEine Bitbreite braucht eine Interpretation
- 2ErklärungReserviere ein Muster für null
- 3BeispielVollziehe das vorzeichenlose Zurückspringen nach
- 4HerausforderungWähle genügend Platz für eine Anzahl
- 5ErklärungGib dem führenden Bit einen negativen Stellenwert
- 6BeispielBeginne das Muster für −45
- 7BeispielSchließe die Vorzeichenumkehr ab
- 8HerausforderungKodiere eine weitere negative Ganzzahl
- 9KernaussageErweitere den Wert mit dem Vorzeichenbit statt mit Nullen
- 10HerausforderungErweitere die Bitbreite vor der Vorzeichenumkehr
- 11ZusammenfassungBehalte die Regel beim Muster
3Erstelle eine Gleitkommakodierung
17 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungEin Wert und eine Skalierung
- 2ErklärungLies die Nachkommastellen
- 3BeispielErzeuge einen endlichen Bruch
- 4KernaussageSage voraus, ob die Ziffernfolge endet
- 5HerausforderungBestimme die Skalierung in der Festkommadarstellung
- 6ErklärungErkenne die Felder
- 7BeispielSchreibe 6,25 im Binärsystem
- 8BeispielKodiere den Exponenten
- 9BeispielSpeichere nur den Nachkommaanteil
- 10BeispielSetze die drei Felder zusammen
- 11HerausforderungDekodiere einen anderen normalen Wert
- 12TippOrdne zuerst reservierte Muster ein
- 13ErklärungUnterscheide Darstellungsbereich und Abstand
- 14KernaussageBeobachte, wie der Abstand wächst
- 15HerausforderungRunde eine ganze Zahl genau in der Mitte
- 16HerausforderungWähle einen Typ für einen exakten Betrag
- 17ZusammenfassungLies das Format vor dem Wert
4Verfolge Text von Zeichen zu Bytes
12 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungText benötigt eine Vereinbarung
- 2ErklärungFinde den ASCII-Zeichencode
- 3BeispielKodiere Buchstaben und Satzzeichen
- 4HerausforderungBestimme den Zahlenwert einer Ziffer
- 5VerbindungWarum ein einzelnes Byte nicht ausreichte
- 6ErklärungBestimme das Zeichen vor dem Kodieren
- 7BeispielTeile die Bits für é
- 8BeispielVervollständige die zwei kodierten Bytes
- 9HerausforderungZähle eine Zeichenkette aus verschiedenen Schriftsystemen
- 10KernaussageEin Aussehen kann zwei Formen haben
- 11HerausforderungUntersuche das verstümmelte Wort
- 12ZusammenfassungHalte drei Zählweisen auseinander
5Plane Speicherplatz für Bilder und Aufnahmen
15 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungZähle Werte und dann Bits pro Wert
- 2ErklärungBaue ein RGB-Pixel auf
- 3VerbindungFüge Transparenz hinzu oder verwende eine Farbpalette
- 4HerausforderungLies eine Farbe und ihre Farbtiefe
- 5BeispielBeginne mit dem Pixelraster
- 6BeispielRechne das Bild in Bytes um
- 7HerausforderungSkaliere das Raster und ergänze Einzelbilder
- 8KernaussageEine Zeichnung kann Anweisungen speichern
- 9ErklärungUnterscheide Abtastzeitpunkte und Amplitude
- 10ErklärungFiltere vor der Abtastung
- 11BeispielBestimme zuerst die Audiodatenrate
- 12HerausforderungBerechne eine andere Aufnahme
- 13VerbindungNoten können eine Wellenform ersetzen
- 14HerausforderungVergleiche zwei Änderungen des Speicherbedarfs
- 15ZusammenfassungHalte Faktoren und Einheiten sichtbar
6Komprimiere, ohne Größe und originalgetreue Wiedergabe zu verwechseln
12 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungZwei Wege zu einer kleineren Datei
- 2ErklärungErsetze Folgen durch Anzahlen
- 3HerausforderungProbiere lange und kurze Folgen aus
- 4VerbindungVerweise auf eine bereits gesehene Folge
- 5BeispielGib häufigen Zeichen kurze Codes
- 6HerausforderungDekodiere den Datenstrom der Reihe nach
- 7KernaussageManche Eingaben müssen groß bleiben
- 8ErklärungEntferne weniger auffällige Mediendetails
- 9BeispielNutze eine komprimierte Bitrate direkt
- 10HerausforderungSchütze eine Masterdatei und teile eine Kopie
- 11HerausforderungVergleiche ein Verhältnis mit einer Übertragungsdauer
- 12ZusammenfassungStimme die Garantie auf den Zweck ab
Binärsystem und Datendarstellung: Übungsaufgaben
Set 1: Lies Muster und schätze den Speicherbedarf10 Übungsfragen
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Set 2: Wende Formate an und berechne Nutzdaten10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 3: Interpretiere dieselben Bits auf verschiedene Arten10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 4: Untersuche Fehler und verbinde Darstellungen10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 5: Verbinde Schranken, Kodierungen und Größenentscheidungen10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe
Schlüsselbegriffe
A
Abtastrate
Abtasttheorem
Abtastwert
Aliasing-Effekt
Alphakanal
Analogsignal
ASCII
Auflösung
B
Basis
Bildmetadaten
Binärkomma
Binärsystem
Bit
Bitrate
Bittiefe
Byte
C
Codepunkt
Codeseite
D
Darstellungsbereich
Darstellungsgenauigkeit
Datenkompression
Datentyp
E
Einzelbild
Endliche Binärdarstellung
Exponentenbias
F
Farbpalette
Farbtiefe
Feste Bitbreite
Festkommadarstellung
G
Generationsverlust
Gleitkommadarstellung
H
Hexadezimalsystem
Hexadezimalziffer
Höchstwertiges Bit
Huffman-Kodierung
I
IEC-Binärpräfix
IEEE 754
Implizites Bit
K
Kompressionsartefakt
Kompressionsverhältnis
L
Lauflängenkodierung
M
MIDI
N
NaN
Nibble
Niederwertigstes Bit
P
Pixel
Präfixfreier Code
Q
Quantisierung
R
Rastergrafik
Rasterung
Redundanz
RGB
Runden zur geraden Endziffer
Rundungsfehler
S
SI-Präfix
Signifikand
Stellenwertdarstellung
Steuerzeichen
Subnormale Zahl
Ü
Überlauf
U
Unicode
Unicode-Normalisierung
Unterlauf
UTF-8
UTF-16
V
Vektorgrafik
Verlustbehaftete Kompression
Verlustfreie Kompression
Vorzeichen-Betrag-Darstellung
Vorzeichenbit
Vorzeichenerweiterung
Vorzeichenlose Ganzzahl
Vorzeichenumkehr
W
Wahrnehmungsbasierte Kodierung
Wörterbuchverfahren
Wraparound
Z
Zeichencode
Zeichenkodierung
Zeichensalat
Zweierkomplement
#
0x-Präfix
- 1Informatisches Denken
- 2Binärsystem und Datendarstellung
- 3Von-Neumann-Architektur
- 4Suchen, Sortieren und Effizienz
- 5Programmierparadigmen
- 6Datenpakete, IP und DNS
- 7Informatik, Ethik und Gesellschaft
Über diese Einheit
Erstelle deine eigenen Lernmaterialien
Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.