Zum Inhalt springen
Zurück zur Themenübersicht

Information und Informatiksysteme

Codierung: Zeichen, Zahlen und Bilder als Bitmuster

Wie aus zwei Zuständen jede Nachricht wird: Bit, Byte, ASCII, Unicode und die Farben eines Bildpunkts.

Benötigte Grundlagen

Dieses Vorwissen brauchst du für das Kapitel. Schau kurz nach, wenn dir etwas davon nicht mehr präsent ist, sonst leg direkt los.

Einführung

Ein Rechner kennt im Innersten nur zwei Zustände: Spannung liegt an oder nicht. Aus dieser einen Unterscheidung entstehen Texte in jeder Schrift der Welt, Fotos, Musik und Filme.

Das klingt nach einem Zaubertrick, ist aber eine ganz nüchterne Sache: Man muss sich nur einigen. Wer festlegt, welches Muster wofür steht, kann mit zwei Zuständen alles darstellen. Genau solche Festlegungen heißen Codes, und in diesem Kapitel bauen wir uns selbst einen, bevor wir uns die echten ansehen.

Das kannst du nach diesem Kapitel

  • erklären, was ein Bit ist und warum nn Bit genau 2n2^n verschiedene Muster ergeben.

  • Byte und die Vorsätze Kilo, Mega, Giga richtig verwenden und Binärpräfixe unterscheiden.

  • beschreiben, wie ASCII und Unicode Zeichen auf Bitmuster abbilden, und begründen, warum ASCII nicht mehr reicht.

  • den Speicherbedarf eines Bildes aus und Farbtiefe berechnen.

  • begründen, warum ein Code eine Vereinbarung ist und keine Eigenschaft der .

Ein Bit, zwei Möglichkeiten

Die kleinste Einheit heißt Bit. Ein Bit kann genau zwei Werte annehmen, die man 0 und 1 nennt. Mehr steckt nicht dahinter; ob physikalisch Spannung anliegt, ein Magnetfeld zeigt oder eine Vertiefung in einer CD sitzt, ist für die Informatik unerheblich.

Mit einem Bit kann man also zwei Dinge unterscheiden, etwa „ja“ und „nein“.

Warum es 2n2^n Muster sind

Nehmen wir zwei Bit. Für das erste gibt es zwei Möglichkeiten. Zu jeder davon gibt es wieder zwei Möglichkeiten für das zweite. Also insgesamt 2⋅2=42 \cdot 2 = 4:

0001101100 \quad 01 \quad 10 \quad 11

Kommt ein drittes Bit dazu, kann man an jedes der vier Muster eine 0 oder eine 1 anhängen. Die Anzahl verdoppelt sich also bei jedem zusätzlichen Bit. Genau das beschreibt die Zweierpotenz:

Anzahl der Muster bei n Bit=2n\text{Anzahl der Muster bei } n \text{ Bit} = 2^n

Diese Begründung solltest du selbst führen können, denn sie erklärt später alle Speichergrößen und alle Zahlbereiche.

Byte und die Vorsätze

Acht Bit werden zu einer Einheit zusammengefasst, dem Byte. Ein Byte kann 28=2562^8 = 256 verschiedene Muster tragen.

Bei größeren Mengen gibt es zwei Zählweisen, und ihre Verwechslung ist eine dauerhafte Fehlerquelle:

VorsatzBedeutungWert
Kilobyte (kB)10310^31 000 Byte
Kibibyte (KiB)2102^{10}1 024 Byte
Megabyte (MB)10610^61 000 000 Byte
Mebibyte (MiB)2202^{20}1 048 576 Byte

Festplattenhersteller rechnen in Zehnerpotenzen, Betriebssysteme oft in Zweierpotenzen. Deshalb zeigt eine „500 GB“-Festplatte im System nur etwa 465 GiB an. Es fehlt nichts, es wird nur anders gezählt.

Ein Byte: acht Bit

271280266412532024160238022402120201164 + 1 = 65

Acht Bit ergeben ein Byte. Die obere Zeile zeigt, warum die Stellen nicht gleichwertig sind: Jede zählt doppelt so viel wie ihre rechte Nachbarin. Die Rechnung darunter ist genau die, die du auch von Hand aufschreiben würdest, nur die Stellen mit einer 1 tragen etwas bei, alle anderen fallen weg.

Zeichen codieren: ASCII

Ein Text besteht aus Zeichen. Um ihn zu speichern, braucht man eine Tabelle, die jedem Zeichen ein Bitmuster zuordnet. Die älteste verbreitete heißt ASCII und benutzt 7 Bit, also 27=1282^7 = 128 Plätze.

Ein paar Werte lohnen sich zu kennen, weil sie eine Struktur haben:

  • A\texttt{A} = 65, B\texttt{B} = 66, … Z\texttt{Z} = 90
  • a\texttt{a} = 97, b\texttt{b} = 98, … z\texttt{z} = 122
  • 0\texttt{0} = 48, 1\texttt{1} = 49, … 9\texttt{9} = 57

Die Buchstaben stehen also fortlaufend. Deshalb kann ein Rechner alphabetisch sortieren, indem er schlicht Zahlen vergleicht. Und der Abstand zwischen Groß- und Kleinbuchstaben ist immer 32, weshalb sich Großschreibung durch eine einzige Subtraktion erreichen lässt.

Beachte einen Stolperstein: Das Zeichen 7\texttt{7} hat den Wert 55, nicht 7. Die Ziffer als Schriftzeichen und die Zahl als Wert sind zwei verschiedene Dinge; genau deshalb muss man Eingaben aus einem Textfeld erst umwandeln, bevor man mit ihnen rechnet.

Vom Buchstaben zum Bitmuster

Das ZeichenAin der Codetabelle nachschlagenDie Nummer aus derTabelle65 (im Unicode: U+0041)die Zahl im DualsystemschreibenDas Bitmuster01000001

Der Weg hat zwei Schritte, und sie werden gern zu einem verkürzt. Der erste ist reine Vereinbarung: Dass ausgerechnet die 65 für das große A steht, hat jemand festgelegt, es hätte auch anders kommen können. Der zweite ist reine Rechnung: Aus der 65 wird 01000001, und daran ist nichts mehr zu entscheiden. Wer beides vermischt, hält die Codetabelle für ein Naturgesetz.

Warum ASCII nicht reicht: Unicode

128 Plätze reichen für das englische Alphabet. Sie reichen nicht für ä, ö, ü, ß, für Griechisch, Kyrillisch, Chinesisch, Arabisch oder für Emojis. Es entstanden Dutzende einander widersprechender Erweiterungen, und daher kommt das bekannte Problem, dass Umlaute in fremden als seltsame Zeichen erscheinen: Dieselben Bitmuster wurden nach einer anderen Vereinbarung gelesen.

Unicode löst das, indem es jedem Zeichen der Welt eine eindeutige Nummer gibt, über eine Million Plätze. Die verbreitetste Speicherform heißt UTF-8. Sie ist geschickt gebaut: Die alten ASCII-Zeichen brauchen weiterhin nur 1 Byte, seltenere Zeichen 2 bis 4 Byte. Ein englischer Text wird dadurch nicht größer, ein deutscher nur geringfügig, und trotzdem ist jedes Zeichen der Welt darstellbar.

Bilder codieren

Ein Rasterbild wird in ein Gitter aus Bildpunkten zerlegt. Für jeden Punkt wird die Farbe gespeichert. Wie viele Bit dafür zur Verfügung stehen, heißt Farbtiefe:

  • 1 Bit: zwei Farben, also schwarz oder weiß
  • 8 Bit: 256 Farben oder 256 Graustufen
  • 24 Bit: je 8 Bit für Rot, Grün und Blau, also 2563=16 777 216256^3 = 16\,777\,216 Farben

Der Speicherbedarf ist dann schlicht:

Bits=Breite×Ho¨he×Farbtiefe\text{Bits} = \text{Breite} \times \text{Höhe} \times \text{Farbtiefe}

Ein Bild aus Bildpunkten

Das Motiv12 × 9Bildpunkte

Rechts steht dasselbe Motiv wie links, nur in Zellen zerlegt: Jede Zelle bekommt genau eine Farbe, nämlich die des Motivs in ihrer Mitte. Deshalb wird aus dem runden Sonnenrand eine Treppe und aus der schrägen Hügelkante eine Stufenlinie. Mehr Zellen machen die Treppen kleiner, geradere Kanten liefern sie nie.

Ein Bildpunkt: drei Zahlen

einBildpunktR245G200B80

Ein einzelner Bildpunkt der Sonne, auseinandergenommen. Jeder der drei Werte liegt zwischen 00 und 255255, passt also in genau ein Byte, zusammen drei Byte oder 24 Bit je Bildpunkt. Die Balken sind maßstäblich: Der Rotbalken ist dreimal so lang wie der Blaubalken, weil 245245 ungefähr dreimal 8080 ist. Multipliziere die drei Byte mit der Zahl der Bildpunkte, und du hast den Speicherbedarf des unkomprimierten Bildes.

Der eine Gedanke, der bleibt

Alle diese Codes haben dasselbe Muster: Jemand hat festgelegt, welches Bitmuster wofür steht. Ein Bitmuster hat keine eingebaute Bedeutung. 01000001\texttt{01000001} ist der Buchstabe A\texttt{A}, die Zahl 65, ein sehr dunkles Grau oder ein Stück eines Tons, je nachdem, welche Vereinbarung gilt.

Damit ist dieses Kapitel die technische Fortsetzung des ersten: sind Form, die Bedeutung kommt aus der Vereinbarung.

Einen eigenen Code entwerfen

In einem Schulhaus sollen sechs Zustände einer Ampelanlage übertragen werden. Wie viele Bit brauchst du mindestens, und wie sieht eine mögliche Zuordnung aus?

  1. 1

    Gefragt ist die kleinste Anzahl nn mit 2n≥62^n \geq 6.

  2. 2

    22=42^2 = 4 ist zu wenig, 23=82^3 = 8 reicht. Also 3 Bit.

  3. 3

    Eine mögliche Vereinbarung: 000 = aus, 001 = rot, 010 = rot-gelb, 011 = grün, 100 = gelb, 101 = Blinken. Die Muster 110 und 111 bleiben frei.

  4. 4

    Die freien Muster sind kein Fehler, sondern der Normalfall: Zweierpotenzen treffen selten genau die benötigte Anzahl. Man kann sie für spätere Zustände oder zur Fehlererkennung nutzen.

  5. 5

    Entscheidend ist: und Empfänger müssen dieselbe Tabelle benutzen. Sonst hält der Empfänger 011 vielleicht für „gelb“.

3 Bit reichen für 6 Zustände; die Zuordnung ist frei wählbar, muss aber beiden Seiten bekannt sein.

Ein Wort in ASCII

Gib die ASCII-Werte für das Wort Bit\texttt{Bit} an und rechne den ersten Buchstaben in ein Bitmuster um.

  1. 1

    Die Buchstaben liegen im ASCII-Code lückenlos hintereinander: auf A\texttt{A} = 65 folgt B\texttt{B} = 66, dann C\texttt{C} = 67 und so weiter. Genau deshalb genügt ein einziger Ankerwert. Man muss nicht 26 Zahlen auswendig können, sondern nur abzählen. B\texttt{B} steht direkt hinter A\texttt{A}, also ist B\texttt{B} = 66.

  2. 2

    Für die Kleinbuchstaben gilt dieselbe Lückenlosigkeit, nur mit einem anderen Anker: a\texttt{a} = 97. Beim Abzählen ist die übliche Falle, den Anker mitzuzählen, i\texttt{i} ist der neunte Buchstabe, liegt aber nur acht Schritte hinter a\texttt{a}. Also i\texttt{i} = 97+8=10597 + 8 = 105.

  3. 3

    t\texttt{t} ist der zwanzigste Kleinbuchstabe, liegt also neunzehn Schritte hinter a\texttt{a}: 97+19=11697 + 19 = 116. Dass Groß- und Kleinbuchstaben getrennte Anker haben (65 und 97), ist wichtig: B\texttt{B} und b\texttt{b} sind für den Rechner zwei verschiedene Zeichen mit einem Abstand von genau 32.

  4. 4

    Also Bit\texttt{Bit} = 66, 105, 116.

  5. 5

    Umrechnung von 66 in 8 Bit: Man zerlegt die Zahl in Zweierpotenzen, denn genau die sind die Stellenwerte im Dualsystem. 66=64+2=26+2166 = 64 + 2 = 2^6 + 2^1, also stehen an den Stellen für 64 und 2 Einsen: 0100001001000010.

    Probe: 64+2=6664 + 2 = 66 ✓, und die Zahl passt in 8 Bit, weil sie unter 256 liegt. Genau darum belegt jedes ASCII-Zeichen ein Byte.

Bit\texttt{Bit} = 66, 105, 116; B\texttt{B} als Byte: 0100001001000010.

Speicherbedarf eines Fotos

Ein Foto hat 4000 mal 3000 Bildpunkte bei 24 Bit Farbtiefe. Wie groß ist es unkomprimiert, und was folgt daraus?

  1. 1

    Zuerst überlegen, was gespeichert wird. Ein unkomprimiertes Bild ist nichts als eine Liste von Farbwerten, einer je Bildpunkt. Also braucht man erst die Anzahl der Bildpunkte, und die ist ein Produkt aus Breite und Höhe: 4000×3000=12 000 0004000 \times 3000 = 12\,000\,000.

  2. 2

    Bits gesamt: 12 000 000×24=288 000 00012\,000\,000 \times 24 = 288\,000\,000 Bit. Die 24 Bit sind die Farbtiefe, also der Platz für einen einzelnen Farbwert, je 8 Bit für Rot, Grün und Blau. Jeder Bildpunkt kostet gleich viel, unabhängig davon, welche Farbe er zeigt.

  3. 3

    In Byte: 288 000 000:8=36 000 000288\,000\,000 : 8 = 36\,000\,000 Byte, also rund 36 MB.

    Größenordnungsprobe: 12 Millionen Bildpunkte zu je 3 Byte müssen 36 Millionen Byte ergeben, das lässt sich im Kopf gegenrechnen und deckt einen verrutschten Faktor sofort auf.

  4. 4

    Auf eine Speicherkarte mit 32 GB passten damit nur rund 890 Bilder, und jedes Verschicken dauerte spürbar.

  5. 5

    Genau deshalb speichert keine Kamera unkomprimiert. Wie man den Bedarf verkleinert, ist Thema des Kapitels zur .

36 MB je Bild. Der Wert macht anschaulich, warum Kompression keine Spielerei ist.

Typischer Fehler

„Das Byte 00110111\texttt{00110111} ist die Zahl 7, weil dort das Zeichen 7 steht.“

Hier werden zwei Ebenen vermischt. 0011011100110111 ist als Zahl gelesen 55, und 55 ist im ASCII-Code das Schriftzeichen exttt7 exttt{7}. Die Zahl 7 dagegen wäre als Byte 0000011100000111.

Der Unterschied ist praktisch folgenreich. Wenn ein Programm die Eingabe aus einem Textfeld ungeprüft addiert, rechnet es mit den Zeichencodes und nicht mit den gemeinten Zahlen: Aus 7\texttt{7} plus 1\texttt{1} wird dann 71\texttt{71} oder 104, je nach Sprache, aber nicht 8. Deshalb steht in fast jeder Programmiersprache ein ausdrücklicher Umwandlungsschritt zwischen Texteingabe und Rechnung.

Die Merkfrage lautet: Meine ich das Zeichen oder den Wert? Wer sie stellt, umgeht einen der häufigsten Anfängerfehler.

Übung 1

leicht

a) Wie viele verschiedene Muster ergeben 5 Bit? b) Wie viele Bit brauchst du mindestens, um 100 verschiedene Schülernamen zu unterscheiden? c) Wie viele Byte hat ein reiner ASCII-Text mit 240 Zeichen?

Tipp anzeigen

Zu b): Zähle die Zweierpotenzen hoch, bis du 100 überschreitest.

Lösung anzeigen

a) 25=322^5 = 32 Muster.

b) 26=642^6 = 64 reicht nicht, 27=1282^7 = 128 reicht. Also 7 Bit.

c) Jedes ASCII-Zeichen belegt 1 Byte, also 240 Byte.

Detaillierte Schritterklärung anzeigen

Hier wird jeder Schritt einzeln erklärt, vor allem, warum er gemacht wird.

Erklärungstiefe

✦ Empfohlen: Standard – Die normale Erklärungstiefe passt zum Einstieg.

  1. 1

    a) Warum Bits eine Zweierpotenz ergeben

    Jedes Bit kann zwei Zustände annehmen. Kommt ein Bit hinzu, kann jede bisherige Kombination einmal mit 0 und einmal mit 1 fortgesetzt werden, die Anzahl verdoppelt sich also bei jedem Bit. Aus einer Verdopplung je Schritt wird eine Zweierpotenz.

    25=322^5 = 32

    Zwischenergebnis

    32 verschiedene Muster.

  2. 2

    b) Die Frage umdrehen: von der Anzahl zur Bitzahl

    Jetzt ist die Anzahl gegeben und die Bitzahl gesucht. Man geht die Zweierpotenzen hoch, bis man 100 zum ersten Mal erreicht oder überschreitet: 26=642^6 = 64 reicht nicht für 100 Namen, 27=1282^7 = 128 reicht.

    Zwischenergebnis

    7 Bit.

  3. 3

    c) Vom Zeichen zum Byte

    Reines ASCII belegt je Zeichen genau 1 Byte. Die Rechnung ist deshalb eine schlichte Multiplikation mit 1: 240 Zeichen ergeben 240 Byte.

    Zwischenergebnis

    240 Byte.

  4. 4

    Beide Richtungen nebeneinanderstellen

    Teil a) und Teil b) sind dieselbe Beziehung, einmal vorwärts und einmal rückwärts gelesen: aus Bits die Anzahl bestimmen (2n2^n) oder aus der Anzahl die Bits (nn so klein wie möglich, aber 2n2^n groß genug). Wer das erkennt, muss sich nur eine Regel merken.

Übung 2

mittel

a) Wandle den ASCII-Wert von M\texttt{M} in ein 8-Bit-Muster um. b) Welches Zeichen gehört zum Muster 0110000101100001? c) Erkläre, warum ein Rechner Wörter alphabetisch sortieren kann, ohne das Alphabet zu „kennen“.

Tipp anzeigen

Zu a): A\texttt{A} = 65, und M\texttt{M} ist der dreizehnte Buchstabe.

Lösung anzeigen

a) M\texttt{M} = 65+12=7765 + 12 = 77. Zerlegung: 77=64+8+4+177 = 64 + 8 + 4 + 1. Muster: 0100110101001101.

b) 01100001=64+32+1=9701100001 = 64 + 32 + 1 = 97, und 97 ist a\texttt{a}.

c) Weil die Buchstaben im Code fortlaufend angeordnet sind: A\texttt{A} = 65, B\texttt{B} = 66 und so weiter. Der Rechner vergleicht schlicht Zahlen und erhält dadurch dieselbe Reihenfolge wie das Alphabet. Er braucht keinerlei Wissen über Sprache; die Reihenfolge steckt bereits in der Vereinbarung des Codes.

Detaillierte Schritterklärung anzeigen

Hier wird jeder Schritt einzeln erklärt, vor allem, warum er gemacht wird.

Erklärungstiefe

✦ Empfohlen: Standard – Die normale Erklärungstiefe passt zum Einstieg.

  1. 1

    Teil a): Den Zahlenwert bestimmen

    Die Großbuchstaben liegen im ASCII-Code lückenlos hintereinander. Mit dem Anker A\texttt{A} = 65 muss man nur noch abzählen, der wievielte Buchstabe gemeint ist.

    \texttt{M} = 65 + 12 = 77

    Zwischenergebnis

    M\texttt{M} hat den Wert 77.

    Vorsicht beim Abzählen: A\texttt{A} ist der erste Buchstabe, aber der Abstand zu ihm ist 0. M\texttt{M} ist der dreizehnte, also ist der Abstand 12.

  2. 2

    Teil a): Die Zahl in Bits zerlegen

    Ein Byte hat acht Stellen mit den Werten 128, 64, 32, 16, 8, 4, 2, 1. Man geht von links nach rechts und fragt jedes Mal: Passt dieser Stellenwert noch in den Rest?

    77 - 64 = 13 \quad 13 - 8 = 5 \quad 5 - 4 = 1 \quad 1 - 1 = 0

    Zwischenergebnis

    Verwendet: 64, 8, 4, 1   ⇒  01001101\;\Rightarrow\; 01001101

  3. 3

    Teil b): Vom Muster zur Zahl

    Rückwärts ist es noch einfacher: Man addiert die Stellenwerte, an denen eine 1 steht.

    01100001 ;\Rightarrow; 64 + 32 + 1 = 97

    Zwischenergebnis

    97, und das ist der Kleinbuchstabe a\texttt{a}.

  4. 4

    Teil c): Warum Sortieren ohne Sprachwissen geht

    Die Frage zielt darauf, dass die Reihenfolge nicht im Rechner steckt, sondern im Code. Weil die Buchstaben aufsteigend durchnummeriert sind, stimmt die Ordnung der Zahlen mit der Ordnung der Buchstaben überein. Der Rechner vergleicht Zahlen, mehr nicht.

    Genau deshalb landen Großbuchstaben beim einfachen Vergleich vor allen Kleinbuchstaben (65 bis 90 gegen 97 bis 122), und Umlaute stehen ganz hinten. Wer eine sprachlich korrekte Sortierung will, braucht zusätzliche Regeln.

Übung 3

schwer

Ein Bildschirmfoto hat 1920 mal 1080 Bildpunkte.

a) Berechne den unkomprimierten Speicherbedarf bei 24 Bit Farbtiefe in Megabyte. b) Wie groß wäre dasselbe Bild bei 8 Bit Farbtiefe, und was ginge dabei verloren? c) Ein deutscher Text hat 5000 Zeichen, davon 200 Umlaute. Berechne die Größe in UTF-8 und vergleiche sie mit reinem ASCII. d) Begründe, warum die Aussage „UTF-8 braucht immer mehr Platz als ASCII“ falsch ist.

Tipp anzeigen

Zu c): In UTF-8 belegt ein ASCII-Zeichen 1 Byte, ein Umlaut 2 Byte.

Lösung anzeigen

a) 1920×1080=2 073 6001920 \times 1080 = 2\,073\,600 Bildpunkte. Mal 24 Bit: 49 766 40049\,766\,400 Bit, geteilt durch 8: 6 220 8006\,220\,800 Byte, also rund 6,2 MB.

b) Bei 8 Bit: 2 073 6002\,073\,600 Byte, also rund 2,1 MB, ein Drittel. Verloren geht die Farbvielfalt: Statt 16,7 Millionen Farben stehen nur 256 zur Verfügung. Bei Fotos mit weichen Übergängen entstehen dadurch sichtbare Farbstufen, etwa im Himmel.

c) In UTF-8: 4800×1+200×2=52004800 \times 1 + 200 \times 2 = 5200 Byte. In reinem ASCII wären es 5000 Byte, allerdings könnten die Umlaute dort gar nicht gespeichert werden. Der Aufpreis beträgt 4 Prozent.

d) Weil UTF-8 die 128 ASCII-Zeichen mit genau einem Byte speichert, und zwar mit demselben Muster wie ASCII. Ein reiner englischer Text ist in UTF-8 also byte-gleich groß. Mehr Platz braucht nur, was in ASCII überhaupt nicht darstellbar wäre. Der Vergleich „mehr Platz“ setzt stillschweigend voraus, dass beide dasselbe leisten, und das tun sie nicht.

Detaillierte Schritterklärung anzeigen

Hier wird jeder Schritt einzeln erklärt, vor allem, warum er gemacht wird.

Erklärungstiefe

✦ Empfohlen: Standard – Die normale Erklärungstiefe passt zum Einstieg.

  1. 1

    a) Die Kette Bildpunkte – Bit – Byte – Megabyte

    Man rechnet in einer festen Reihenfolge: erst die Anzahl der Bildpunkte, dann die Bits, dann die Byte. 1920⋅1080=2 073 6001920 \cdot 1080 = 2\,073\,600 Punkte; mal 24 Bit sind 49 766 40049\,766\,400 Bit; geteilt durch 8 sind 6 220 8006\,220\,800 Byte, also rund 6,2 MB.

    1920⋅1080⋅24:8=6 220 8001920 \cdot 1080 \cdot 24 : 8 = 6\,220\,800

    Zwischenergebnis

    Rund 6,2 MB.

  2. 2

    b) Was sich ändert, wenn nur ein Faktor kleiner wird

    Von 24 auf 8 Bit wird genau ein Faktor gedrittelt, also drittelt sich der Bedarf: 2 073 6002\,073\,600 Byte, rund 2,1 MB. Verloren geht die Farbvielfalt, statt 16,7 Millionen Farben bleiben 256.

    2 073 600⋅8:8=2 073 6002\,073\,600 \cdot 8 : 8 = 2\,073\,600

    Zwischenergebnis

    Rund 2,1 MB, also ein Drittel.

  3. 3

    c) UTF-8 rechnen: nach Zeichenart getrennt

    In UTF-8 belegt ein ASCII-Zeichen 1 Byte, ein Umlaut 2. Man trennt deshalb: 48004800 gewöhnliche Zeichen zu 1 Byte plus 200200 Umlaute zu 2 Byte ergibt 4800+400=52004800 + 400 = 5200 Byte. Reines ASCII käme auf 5000 Byte, könnte die Umlaute aber gar nicht speichern.

    4800⋅1+200⋅2=52004800 \cdot 1 + 200 \cdot 2 = 5200

    Zwischenergebnis

    5200 Byte, ein Aufpreis von 4 %.

  4. 4

    d) Die Behauptung „UTF-8 braucht immer mehr“ widerlegen

    Sie ist falsch, weil UTF-8 die 128 ASCII-Zeichen mit genau einem Byte speichert, und zwar mit demselben Bitmuster wie ASCII. Ein rein englischer Text ist in UTF-8 also byte-gleich groß. Mehr Platz braucht nur, was in ASCII überhaupt nicht darstellbar wäre.

Zusammenfassung

Ein Bit unterscheidet zwei Zustände, nn Bit ergeben 2n2^n Muster, weil jedes weitere Bit die Anzahl verdoppelt. Acht Bit bilden ein Byte mit 256 Mustern. Vorsätze wie Kilo gibt es in zwei Zählweisen, dezimal mit 1000 und binär mit 1024, was den scheinbaren Größenverlust bei Festplatten erklärt. ASCII ordnet 128 Zeichen fortlaufende Nummern zu und macht dadurch Sortieren zu einem Zahlenvergleich; Unicode erweitert das auf jedes Zeichen der Welt, UTF-8 speichert häufige Zeichen weiterhin mit einem Byte. Bilder werden über und Farbtiefe codiert. Über allem steht ein Gedanke: Ein Bitmuster bedeutet nichts von sich aus. Bedeutung entsteht durch die Vereinbarung, nach der es gelesen wird.