Zurück zur StartseiteInformatik · EF · Fach wechseln
Kostenlos starten
EF · Informatik
Objekte, Suchen und Sortieren, Binärcodes und Rechnerarchitektur · Binärcodes und Rechnerarchitektur

Binärcodes für Zahlen und Zeichen

Auf deinem Smartphone liegen Fotos, Musik, Nachrichten und Apps. Im Speicher steht aber nur eine einzige Sorte von Informationen: Bits, also 0 und 1. Wie kann aus „Hallo“ oder aus der Zahl −18 eine Folge von Nullen und Einsen werden? Und woher weiß der Rechner, ob ein Bitmuster eine Zahl, einen Buchstaben oder einen Bildpunkt bedeutet? Das klären wir in diesem Abschnitt.

Das Dualsystem

Ein Bit hat zwei Zustände: Strom fließt oder fließt nicht, 0 oder 1. Mit mehreren Bits lassen sich mehr Werte darstellen: Mit $n$ Bit gibt es $2^n$ verschiedene Muster. Acht Bit (ein Byte) ergeben $2^8 = 256$ Muster.

Im Dezimalsystem hat jede Stelle den Wert einer Zehnerpotenz. Im Dualsystem (Binärsystem) hat jede Stelle den Wert einer Zweierpotenz.

Stellenwerttabelle des Dualsystems für 8 Bit, eingetragen ist die Dualzahl 00100101, also 37 2⁷2⁶2⁵2⁴2³2²2¹2⁰ 1286432168421 00100101 32 + 4 + 1 = 37

Dual → Dezimal: Addiere die Stellenwerte aller Stellen, an denen eine 1 steht. Im Bild: $00100101_2 = 32 + 4 + 1 = 37$.

Dezimal → Dual: Teile die Zahl immer wieder durch 2 und notiere den Rest. Die Reste, von unten nach oben gelesen, ergeben die Dualzahl.

Probiere es selbst aus: Klicke auf die Bits und beobachte den Dezimalwert.

Üben★☆☆Nicht begonnen
Wandeln Sie ins Dualsystem um: a) 13 b) 45 c) 100

Wandeln Sie ins Dualsystem um:

  1. a) 13
  1. b) 45
  1. c) 100
Lösen
Üben★☆☆Nicht begonnen
Wandeln Sie ins Dezimalsystem um: a) $1011_2$ b) $11001_2$ c) $10000001_2$

Wandeln Sie ins Dezimalsystem um:

  1. a) $1011_2$
  1. b) $11001_2$
  1. c) $10000001_2$
Lösen

Rechnen im Dualsystem und Überlauf

Die Addition funktioniert wie das schriftliche Addieren im Dezimalsystem, nur dass der Übertrag schon bei 2 entsteht. Es gelten vier Regeln:

Rechnung Ergebnis
$0 + 0$ $0$
$0 + 1$ $1$
$1 + 1$ $0$, Übertrag $1$
$1 + 1 + 1$ (mit Übertrag) $1$, Übertrag $1$

Ein Rechner hat aber nur eine feste Anzahl Stellen. Passt das Ergebnis nicht mehr hinein, tritt ein Überlauf (Overflow) auf. Beispiel mit 8 Bit: $200 + 100 = 300$. Es ist $11001000_2 + 01100100_2 = 100101100_2$. Das Ergebnis hat 9 Stellen, das neunte Bit geht verloren. Übrig bleibt $00101100_2 = 44$, also $300 - 256$. Die größte darstellbare Zahl ohne Vorzeichen ist bei 8 Bit eben $255$.

Üben★★☆Nicht begonnen
Addieren Sie schriftlich im Dualsystem und prüfen Sie das Ergebnis im Dezimalsystem: a) $1011_2 + 0110_2$ b) $11011_2 + 10101_2$ c) Erklären Sie, wann bei der Addition…

Addieren Sie schriftlich im Dualsystem und prüfen Sie das Ergebnis im Dezimalsystem:

  1. a) $1011_2 + 0110_2$
  1. b) $11011_2 + 10101_2$
  1. c) Erklären Sie, wann bei der Addition vorzeichenloser 8-Bit-Zahlen ein Überlauf auftritt, und geben Sie ein Beispiel.
Lösen

Negative Zahlen: das Zweierkomplement

Wie speichert man −18? Ein Minuszeichen gibt es im Speicher nicht. Heute nutzen Rechner das Zweierkomplement. Bei 8 Bit gilt:

So ist $11101110_2 = -128 + 64 + 32 + 8 + 4 + 2 = -18$.

Vorzeichenwechsel: Um aus $x$ die Zahl $-x$ zu machen, 1. alle Bits invertieren (0 ↔ 1), 2. dann 1 addieren.

Zahlenbereich: Mit 8 Bit gibt es 256 Muster. Davon beginnen 128 mit 1 (negativ: $-128$ bis $-1$) und 128 mit 0 (von $0$ bis $127$). Allgemein reicht der Bereich mit $n$ Bit von $-2^{n-1}$ bis $2^{n-1} - 1$.

Der Vorteil: Subtrahieren ist Addieren des Zweierkomplements, der Rechner braucht kein eigenes Subtrahierwerk. Beispiel $9 - 5 = 9 + (-5)$:

$00001001 + 11111011 = 1\,00000100$

Das neunte Bit wird abgeschnitten, übrig bleibt $00000100 = 4$ ✓.

Üben★★☆Nicht begonnen
Stellen Sie ganze Zahlen mit 8 Bit im Zweierkomplement dar. a) Geben Sie die Darstellung von +25 und −25 an. b) Welche Dezimalzahl stellt 11110100 dar? c) Welchen…

Stellen Sie ganze Zahlen mit 8 Bit im Zweierkomplement dar.

  1. a) Geben Sie die Darstellung von +25 und −25 an.
  1. b) Welche Dezimalzahl stellt 11110100 dar?
  1. c) Welchen Zahlenbereich kann man mit 8 Bit im Zweierkomplement darstellen?
Lösen
Üben★★★Nicht begonnen
Gegeben sind zwei 8-Bit-Zahlen im Zweierkomplement: $a = 01100100$ und $b = 00110010$. a) Geben Sie beide Zahlen dezimal an. b) Berechnen Sie $a + b$ binär. Was fällt…

Gegeben sind zwei 8-Bit-Zahlen im Zweierkomplement: $a = 01100100$ und $b = 00110010$.

  1. a) Geben Sie beide Zahlen dezimal an.
  1. b) Berechnen Sie $a + b$ binär. Was fällt auf? Begründen Sie mit dem darstellbaren Zahlenbereich.
  1. c) Berechnen Sie $b - a$ als Addition mit dem Zweierkomplement von $a$ und geben Sie das Ergebnis dezimal an.
Lösen

Zeichen: ASCII und Unicode

Auch Buchstaben müssen als Zahlen gespeichert werden. Man legt dazu eine Tabelle fest, die jedem Zeichen eine Zahl zuordnet, einen Zeichencode. Der älteste weit verbreitete ist der ASCII-Code (7 Bit, also 128 Zeichen). Er enthält Groß- und Kleinbuchstaben des lateinischen Alphabets, Ziffern, Satzzeichen und Steuerzeichen.

Zeichen Dezimal Binär (8 Bit)
„A“ 65 01000001
„B“ 66 01000010
„Z“ 90 01011010
„a“ 97 01100001
„0“ 48 00110000
„5“ 53 00110101

Wichtig: Das Zeichen „5“ (Wert 53) ist nicht die Zahl 5. Ein Text wie „Hi“ wird Zeichen für Zeichen gespeichert, jedes Zeichen in einem Byte. Die Buchstaben stehen in alphabetischer Reihenfolge hintereinander: Wenn „C“ den Wert 67 hat, dann hat „D“ den Wert 68.

Das Problem: ASCII kennt kein „ä“, „ö“, „ü“, „ß“ und kein „€“, ganz zu schweigen von griechischen, arabischen oder chinesischen Schriftzeichen. Früher gab es dafür viele verschiedene 8-Bit-Erweiterungen, die untereinander nicht kompatibel waren. Texte wurden dann auf einem fremden Rechner mit falschen Zeichen angezeigt.

Die Lösung: Unicode. Der Unicode-Standard ordnet weltweit über 140.000 Zeichen jeweils einer eindeutigen Nummer zu. Die gebräuchlichste Speicherform ist UTF-8: Sie benutzt für jedes Zeichen 1 bis 4 Byte. Die ersten 128 Zeichen sind identisch mit ASCII und brauchen 1 Byte. Ein „ä“ benötigt dagegen 2 Byte: 11000011 10100100. So bleiben alte ASCII-Texte gültig, und trotzdem lassen sich alle Schriften mischen.

Üben★☆☆Nicht begonnen
Im ASCII-Code hat der Buchstabe „A“ den Dezimalwert 65, „a“ den Wert 97 und die Ziffer „0“ den Wert 48. a) Geben Sie die Binärdarstellung (8 Bit) von „A“ an. b) Welches…

Im ASCII-Code hat der Buchstabe „A“ den Dezimalwert 65, „a“ den Wert 97 und die Ziffer „0“ den Wert 48.

  1. a) Geben Sie die Binärdarstellung (8 Bit) von „A“ an.
  1. b) Welches Zeichen hat den Wert 66, welches 99?
  1. c) Um welchen Wert unterscheiden sich Groß- und Kleinbuchstaben?
Lösen
Üben★★☆Nicht begonnen
Der Text „Hallo“ wird im ASCII-Code gespeichert (H = 72, a = 97, l = 108, o = 111). a) Geben Sie die Bytefolge dezimal und binär an. b) Wie viele Bit benötigt der Text?…

Der Text „Hallo“ wird im ASCII-Code gespeichert (H = 72, a = 97, l = 108, o = 111).

  1. a) Geben Sie die Bytefolge dezimal und binär an.
  1. b) Wie viele Bit benötigt der Text? Wie viele Bit wären es bei einem Zeichensatz mit 16 Bit pro Zeichen?
  1. c) Entschlüsseln Sie die Bytefolge 01001010 01100001 .
Lösen
Üben★★★Nicht begonnen
Ein Zeichensatz soll 300 verschiedene Zeichen darstellen. a) Wie viele Bit pro Zeichen werden mindestens benötigt? Begründen Sie rechnerisch. b) Erklären Sie, warum…

Ein Zeichensatz soll 300 verschiedene Zeichen darstellen.

  1. a) Wie viele Bit pro Zeichen werden mindestens benötigt? Begründen Sie rechnerisch.
  1. b) Erklären Sie, warum ASCII (7 Bit) für deutsche Texte nicht ausreicht, und beschreiben Sie, wie Unicode (z. B. UTF-8) dieses Problem löst.
  1. c) Ein Text aus 2.000 Zeichen wird mit 8 Bit bzw. 16 Bit pro Zeichen gespeichert. Geben Sie die Speichergrößen in Byte an und berechnen Sie die Differenz.
Lösen

Dasselbe Bitmuster, verschiedene Bedeutung: Hexadezimalzahlen und Bilder

Lange Bitfolgen sind für Menschen schwer lesbar. Deshalb schreibt man sie oft hexadezimal (Sechzehnersystem). Es hat 16 Ziffern: $0$ bis $9$ und $A = 10$, $B = 11$, $C = 12$, $D = 13$, $E = 14$, $F = 15$. Vier Bit (ein Halbbyte) ergeben genau eine Hexziffer:

Dual 0000 0001 0101 1001 1010 1100 1111
Hex 0 1 5 9 A C F

Ein Byte besteht also aus zwei Hexziffern: $1011\,0100_2 = \text{B4}_{16}$, denn $1011 = 11 = \text{B}$ und $0100 = 4$.

Bilder bestehen aus Pixeln. Bei einem Schwarz-Weiß-Bild genügt 1 Bit je Pixel (z. B. 1 = schwarz). Bei Farbbildern speichert man oft 24 Bit je Pixel (je 8 Bit für Rot, Grün und Blau). Die Speichergröße ergibt sich so:

$$\text{Bytes} = \frac{\text{Breite} \cdot \text{Höhe} \cdot \text{Bit je Pixel}}{8}$$

Hier zeigt sich ein Grundprinzip der Informatik: Ein Bitmuster hat keine Bedeutung an sich. Erst die Vereinbarung, wie man es interpretiert, macht daraus etwas. Das Byte 01000001 ist

  • als Dualzahl ohne Vorzeichen die Zahl 65,

  • als ASCII-Zeichen der Buchstabe „A“,

  • als Pixelfolge acht Bildpunkte (hell, dunkel, hell, hell, hell, hell, hell, dunkel).

Welche Interpretation gilt, legt das Programm oder das Dateiformat fest. Wird ein Bitmuster falsch gedeutet, entsteht Unsinn, etwa wenn du ein Bild in einem Texteditor öffnest.

Üben★★★Nicht begonnen
Ein Bild der Größe 4 × 4 Pixel ist schwarz-weiß (1 Bit je Pixel). Die Zeilen sind 1001, 0110, 0110, 1001. a) Geben Sie das Bild als Bytefolge hexadezimal an (zwei Zeilen…

Ein Bild der Größe 4 × 4 Pixel ist schwarz-weiß (1 Bit je Pixel). Die Zeilen sind 1001, 0110, 0110, 1001.

  1. a) Geben Sie das Bild als Bytefolge hexadezimal an (zwei Zeilen je Byte).
  1. b) Wie groß wäre ein Bild von 1.920 × 1.080 Pixeln mit 24 Bit je Pixel in MiB (1 MiB = 1.048.576 Byte)? Runden Sie auf zwei Nachkommastellen.
  1. c) Erklären Sie, warum derselbe Bitstring je nach Interpretation (Zahl, Zeichen, Pixel) Unterschiedliches bedeuten kann.
Lösen

Zurück zum Anfang: Smartphone-Daten sind nur Bitfolgen. Zahlen werden im Dual- bzw. Zweierkomplementsystem gespeichert, Text über einen Zeichencode, Bilder über Pixelwerte. Welche Bedeutung ein Bitmuster hat, bestimmt die Interpretation.

Auf einen Blick

  • Dualsystem: Stellenwerte sind Zweierpotenzen. Mit $n$ Bit gibt es $2^n$ Muster, ohne Vorzeichen von $0$ bis $2^n - 1$.

  • Umwandlung: Dual → Dezimal durch Addieren der Stellenwerte der Einsen. Dezimal → Dual durch fortgesetztes Teilen durch 2 (Reste von unten nach oben lesen).

  • Addition: wie schriftlich, Übertrag ab 2. Passt das Ergebnis nicht in die Stellenzahl, entsteht ein Überlauf.

  • Zweierkomplement: Das höchste Bit hat den Wert $-2^{n-1}$. Negation: invertieren und 1 addieren. Bereich: $-2^{n-1}$ bis $2^{n-1}-1$, bei 8 Bit also $-128$ bis $127$. Subtraktion ist Addition des Zweierkomplements.

  • Zeichen: ASCII (7 Bit) ordnet Zeichen Zahlen zu. Unicode/UTF-8 deckt alle Schriften ab und ist zu ASCII kompatibel.

  • Hexadezimal: 4 Bit = 1 Hexziffer. Bilder: Größe = Breite · Höhe · Bit je Pixel.

  • Ein Bitmuster bedeutet erst durch seine Interpretation etwas (Zahl, Zeichen, Pixel).

Alle Aufgaben zu diesem Abschnitt anzeigen