Die Bilder des Beitrags sind mit KI generiert.

Wer sich mit Computern, Programmierung oder digitaler Technik beschäftigt,
begegnet früher oder später Zahlen wie FF, 1A3
oder #3498DB. Auf den ersten Blick sehen solche Zeichenfolgen
vielleicht ungewöhnlich aus. Tatsächlich steckt dahinter ein Zahlensystem,
das in der Informatik eine wichtige Rolle spielt: das Hexadezimalsystem.

Hexadezimalzahlen sind keineswegs nur etwas für erfahrene Programmierer.
Sie helfen dabei, große Mengen von Binärdaten übersichtlicher darzustellen,
Speicheradressen zu beschreiben und Farben auf Webseiten festzulegen.
Wer das Prinzip einmal verstanden hat, kann viele dieser Zahlen selbst
lesen, umrechnen und einordnen.

In diesem Artikel schauen wir uns Schritt für Schritt an, was
Hexadezimalzahlen sind, wie sie aufgebaut sind, wie die Umrechnung
funktioniert und wo sie uns im Alltag begegnen.

1. Was sind Hexadezimalzahlen?

Eine Hexadezimalzahl ist eine Zahl, die im sogenannten
Hexadezimalsystem dargestellt wird. Das Wort stammt aus dem Griechischen
und bedeutet sinngemäß „sechzehn“. Das ist bereits der wichtigste Hinweis
auf die Funktionsweise dieses Systems: Es verwendet die Basis 16.

Im Alltag verwenden wir normalerweise das Dezimalsystem. Es besitzt zehn
verschiedene Ziffern, nämlich die Zahlen von 0 bis 9. Sobald wir die
Zahl neun überschreiten, benötigen wir eine weitere Stelle. Nach 9
kommt deshalb 10, anschließend 11, 12 und so weiter.

Das Hexadezimalsystem funktioniert nach demselben Grundprinzip. Der
Unterschied besteht darin, dass es nicht zehn, sondern sechzehn
unterschiedliche Ziffernwerte kennt. Da die Ziffern 0 bis 9 dafür nicht
ausreichen, werden zusätzlich die Buchstaben A bis F verwendet.

Dabei stehen die Buchstaben für die Werte zehn bis fünfzehn. Ein A
entspricht also dem Dezimalwert 10, ein B dem Wert 11 und ein F dem
Wert 15.

Ein kurzer Vergleich:

  • Dezimalsystem: Basis 10, Ziffern 0 bis 9
  • Binärsystem: Basis 2, Ziffern 0 und 1
  • Hexadezimalsystem: Basis 16, Ziffern 0 bis 9 und A bis F

Das Entscheidende ist also nicht, dass Hexadezimalzahlen grundsätzlich
andere mathematische Werte darstellen. Es geht vielmehr darum, wie diese
Werte geschrieben werden. Die Zahl sechzehn lässt sich beispielsweise
dezimal als 16 und hexadezimal als 10
darstellen. Beide Schreibweisen bezeichnen denselben Zahlenwert.

2. Welche Ziffern gibt es im Hexadezimalsystem?

Die sechzehn möglichen Ziffern eines Hexadezimalsystems sind schnell
gelernt. Zunächst kommen die bekannten Ziffern von 0 bis 9. Danach folgen
die Buchstaben A, B, C, D, E und F.

Hexadezimal Dezimal Hexadezimal Dezimal
0 0 8 8
1 1 9 9
2 2 A 10
3 3 B 11
4 4 C 12
5 5 D 13
6 6 E 14
7 7 F 15

Nach der Ziffer F ist Schluss. Eine weitere einzelne Ziffer gibt es
im üblichen Hexadezimalsystem nicht. Der nächste Wert wird deshalb
mit einer neuen Stelle geschrieben.

Das bedeutet: Auf E folgt F, danach kommt
10. Diese hexadezimale Zahl 10 entspricht
dezimal nicht zehn, sondern sechzehn.

Danach geht es mit 11, 12 und so weiter.
Auf 19 folgt 1A, auf 1F folgt
20. Das wirkt anfangs ungewohnt, wird aber verständlich,
sobald man das Stellenwertprinzip betrachtet.

3. Wie funktioniert das Stellenwertsystem?

Jede Stelle einer Zahl besitzt einen bestimmten Wert. Im Dezimalsystem
entspricht die erste Stelle von rechts den Einern, die nächste den
Zehnern, danach kommen die Hunderter und die Tausender.

Die Zahl 347 bedeutet beispielsweise:

347 = 3 × 100 + 4 × 10 + 7 × 1
    = 300 + 40 + 7

Im Hexadezimalsystem ist das Prinzip identisch. Lediglich die Basis
ändert sich von zehn auf sechzehn. Die Stellenwerte lauten deshalb
1, 16, 256, 4096 und so weiter.

Eine hexadezimale Zahl wie 2B besteht aus zwei Stellen.
Die B-Stelle steht ganz rechts und hat den Stellenwert 1. Die 2 steht
links davon und besitzt den Stellenwert 16.

Da B für elf steht, ergibt sich:

2B = 2 × 16 + 11 × 1
   = 32 + 11
   = 43

Die Hexadezimalzahl 2B entspricht also der Dezimalzahl
43. Es wurde nichts am eigentlichen Zahlenwert verändert. Wir haben
ihn lediglich in einem anderen Zahlensystem dargestellt.

Die Stellenwerte im Überblick

Stelle von rechts Rechnung Stellenwert
1. 160 1
2. 161 16
3. 162 256
4. 163 4096
5. 164 65536

Diese Stellenwerte erklären, weshalb Hexadezimalzahlen besonders gut
geeignet sind, um Zahlen aus der Computertechnik kompakt darzustellen.
Bereits wenige Stellen können relativ große Werte abbilden.

4. Hexadezimalzahlen in Dezimalzahlen umwandeln

Eine der wichtigsten Fähigkeiten im Umgang mit Hexadezimalzahlen ist
die Umrechnung in das vertraute Dezimalsystem. Mit einem Hex Converter geht das super einfach. Dafür muss man lediglich
die einzelnen Ziffern mit ihren jeweiligen Stellenwerten multiplizieren
und anschließend die Ergebnisse addieren.

Schauen wir uns dazu ein Beispiel an: die Hexadezimalzahl
3A7.

Schritt 1: Die Ziffern bestimmen

Die Zahl besteht aus den Ziffern 3, A und 7. Dabei entspricht A dem
Dezimalwert 10.

Schritt 2: Die Stellenwerte zuordnen

Von rechts nach links erhalten die Stellen die Werte 1, 16 und 256.
Die 7 steht somit für sieben Einer, A für zehn Sechzehner und 3
für drei 256er.

Schritt 3: Multiplizieren und addieren

3A7 = 3 × 256 + 10 × 16 + 7 × 1
    = 768 + 160 + 7
    = 935

Damit steht fest: 3A7 im Hexadezimalsystem entspricht
935 im Dezimalsystem.

Merktipp: Beginne bei der Umrechnung immer rechts
mit dem Stellenwert 1. Multipliziere jede Ziffer mit der passenden
Potenz von 16 und addiere anschließend alle Ergebnisse.

Ein weiteres Beispiel: 7F

Auch eine kürzere Zahl lässt sich auf diese Weise umrechnen. Bei
7F steht F für 15.

7F = 7 × 16 + 15
   = 112 + 15
   = 127

Die Hexadezimalzahl 7F entspricht also der Dezimalzahl
127.

5. Dezimalzahlen in Hexadezimalzahlen umwandeln

Die Umrechnung in die andere Richtung funktioniert etwas anders.
Wenn eine Dezimalzahl in eine Hexadezimalzahl umgewandelt werden soll,
teilt man sie wiederholt durch 16. Die jeweiligen Reste ergeben die
Ziffern der gesuchten Zahl.

Nehmen wir als Beispiel die Dezimalzahl 250.

Schritt 1: Durch 16 teilen

250 geteilt durch 16 ergibt 15 mit einem Rest von 10. Der Rest 10
wird im Hexadezimalsystem als A geschrieben.

250 ÷ 16 = 15 Rest 10

Schritt 2: Den Quotienten erneut teilen

Nun teilen wir den Quotienten 15 durch 16. Das Ergebnis ist 0,
der Rest beträgt 15. Der Rest 15 entspricht dem Buchstaben F.

15 ÷ 16 = 0 Rest 15

Schritt 3: Die Reste rückwärts lesen

Die Reste werden von unten nach oben gelesen. Zuerst kommt F,
danach A. Somit ergibt sich die Hexadezimalzahl FA.

250 im Dezimalsystem = FA im Hexadezimalsystem

Eine kurze Gegenprobe bestätigt das Ergebnis:

FA = 15 × 16 + 10
   = 240 + 10
   = 250

Bei größeren Zahlen wird dieses Verfahren einfach fortgesetzt,
bis der Quotient null erreicht. Wichtig ist nur, die Reste in der
richtigen Reihenfolge aufzuschreiben.

6. Warum sind Hexadezimalzahlen für Computer so wichtig?

Computer arbeiten auf der untersten Ebene mit binären Informationen.
Ein einzelnes Bit kann dabei zwei Zustände annehmen: 0 oder 1.
Sämtliche digitalen Daten, von Texten über Bilder bis hin zu
Programmen, werden letztlich durch solche binären Zustände verarbeitet
und gespeichert.

Das Binärsystem passt hervorragend zur elektronischen Technik.
Für Menschen können lange Folgen aus Nullen und Einsen allerdings
schnell unübersichtlich werden.

Stell dir beispielsweise diese Binärzahl vor:

1101011010111110

Sie ist nicht besonders angenehm zu lesen. In hexadezimaler
Schreibweise lässt sie sich deutlich kompakter darstellen:

1101 0110 1011 1110
   D    6    B    E

Hexadezimal: D6BE

Der Grund dafür ist einfach: Eine Hexadezimalziffer entspricht
genau vier Binärbits. Vier Bits können 16 verschiedene Kombinationen
bilden, von 0000 bis 1111. Diese Kombinationen
lassen sich den sechzehn Hexadezimalziffern direkt zuordnen.

Deshalb kann eine lange Binärfolge in Vierergruppen unterteilt
werden. Jede Gruppe wird anschließend durch genau eine
Hexadezimalziffer ersetzt.

Diese Verbindung macht das Hexadezimalsystem zu einer Art
Kurzschreibweise für Binärdaten. Es ist für Menschen leichter lesbar,
während die zugrunde liegenden Daten weiterhin binär verarbeitet
werden können.

7. Die Umrechnung zwischen Binär- und Hexadezimalsystem

Da jede Hexadezimalziffer vier Bits entspricht, ist die Umrechnung
zwischen diesen beiden Systemen besonders unkompliziert. Eine
komplizierte Rechnung ist dafür normalerweise nicht nötig.

Hexadezimal Binär Dezimal
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
A 1010 10
B 1011 11
C 1100 12
D 1101 13
E 1110 14
F 1111 15

Beispiel: Von Binär zu Hexadezimal

Wir möchten die Binärzahl 10111100 umwandeln.
Zunächst teilen wir die Zahl von rechts aus gesehen in Vierergruppen:

1011 1100

Die Gruppe 1011 entspricht B. Die Gruppe
1100 entspricht C. Daraus ergibt sich:

10111100 (binär) = BC (hexadezimal)

Beispiel: Von Hexadezimal zu Binär

Jetzt machen wir es umgekehrt. Die Hexadezimalzahl 5D
besteht aus den Ziffern 5 und D.

5 = 0101
D = 1101

5D = 01011101

Damit lässt sich eine Hexadezimalzahl ohne großen Aufwand wieder
in ihre binäre Darstellung zurückverwandeln. Bei Bedarf kann
man anschließend auch noch den entsprechenden Dezimalwert berechnen.

8. Hexadezimalzahlen in der Programmierung

In vielen Programmiersprachen können Zahlen direkt im
Hexadezimalsystem geschrieben werden. Damit der Unterschied zu
gewöhnlichen Dezimalzahlen erkennbar ist, wird häufig ein bestimmtes
Präfix verwendet.

In Sprachen wie C, C++, Java, JavaScript und Python dient dafür
üblicherweise die Schreibweise 0x. Die Zahl
0x2A steht beispielsweise für den dezimalen Wert 42.

// JavaScript
const zahl = 0x2A;

console.log(zahl); // Ausgabe: 42

Das Präfix gehört zur Schreibweise der Zahl und ist selbst keine
zusätzliche Ziffer. Es teilt dem Programm mit, dass die folgenden
Zeichen als hexadezimaler Wert interpretiert werden sollen.

Hexadezimalzahlen sind unter anderem bei der Arbeit mit Speicherwerten,
Bitmasken, Farbwerten und bestimmten Datenformaten hilfreich.
Auch beim Debuggen können sie nützlich sein, wenn man sehen möchte,
welche Werte ein Programm verarbeitet.

Groß- oder Kleinschreibung?

In der üblichen hexadezimalen Schreibweise können die Buchstaben
groß oder klein geschrieben werden. AF und
af bezeichnen daher normalerweise denselben Zahlenwert.
Welche Schreibweise verwendet wird, hängt häufig von der Konvention
eines Programms, Werkzeugs oder Dateiformats ab.

Man sollte außerdem beachten, dass die Regeln einer Programmiersprache
entscheidend sind. Nicht jede beliebige Schreibweise wird von jedem
Programm akzeptiert. Das Präfix 0x ist weit verbreitet,
aber andere Sprachen oder Formate können andere Regeln besitzen.

9. Hexadezimalzahlen bei Farben im Webdesign

Ein besonders anschauliches Beispiel findet sich im Webdesign.
Wer schon einmal CSS geschrieben oder die Farben einer Webseite
angepasst hat, ist vermutlich auf Angaben wie #FF0000,
#00FF00 oder #3498DB gestoßen.

Diese Schreibweisen sind hexadezimale Farbcodes. Bei der üblichen
sechsstelligen RGB-Schreibweise werden die Farben Rot, Grün und Blau
durch jeweils zwei Hexadezimalziffern beschrieben.

Die Struktur sieht folgendermaßen aus:

#RRGGBB
  • RR steht für den Rotanteil.
  • GG steht für den Grünanteil.
  • BB steht für den Blauanteil.

Jeder dieser Farbanteile kann einen Wert von 0 bis 255 annehmen.
In Hexadezimalschreibweise reicht der Wertebereich von
00 bis FF. Der Wert 00
bedeutet, dass der betreffende Farbkanal ausgeschaltet ist.
FF steht dagegen für die maximale Intensität.

Farbcode Bedeutung Ergebnis
#FF0000 Rot auf Maximum, Grün und Blau auf 0 Rot
#00FF00 Grün auf Maximum Grün
#0000FF Blau auf Maximum Blau
#FFFFFF Alle drei Farbkanäle auf Maximum Weiß
#000000 Alle drei Farbkanäle auf 0 Schwarz
#808080 Alle drei Farbkanäle auf 128 Mittelgrau

Ein Beispiel aus der Praxis:

body {
    background-color: #F0F4F8;
}

h1 {
    color: #17365D;
}

button {
    background-color: #3498DB;
    color: #FFFFFF;
}

Hier wird eine helle Hintergrundfarbe mit einer dunkleren
Überschriftenfarbe und einem blauen Button kombiniert.
Die Farbwerte lassen sich direkt in CSS verwenden.

Der Vorteil dieser Schreibweise ist, dass sich die drei Farbkanäle
kompakt angeben lassen. Wer weiß, wie das Hexadezimalsystem
funktioniert, kann außerdem leichter nachvollziehen, wie sich
Farbwerte verändern, wenn einzelne Ziffern angepasst werden.

10. Hexadezimalzahlen und Speichergrößen

Eine weitere wichtige Anwendung findet sich bei Speicherinhalten.
Ein Byte besteht aus acht Bits und kann damit 256 unterschiedliche
Werte darstellen. Diese Werte reichen von 0 bis 255.

Zwei Hexadezimalziffern reichen aus, um jeden möglichen Bytewert
abzubilden. Der kleinste Wert ist 00, der größte
FF.

Zum Beispiel:

Dezimal 0   = Hexadezimal 00
Dezimal 10  = Hexadezimal 0A
Dezimal 127 = Hexadezimal 7F
Dezimal 255 = Hexadezimal FF

Deshalb werden Speicherinhalte häufig in hexadezimaler Form angezeigt.
In einem sogenannten Hex-Editor können Anwender beispielsweise
die einzelnen Bytes einer Datei betrachten, ohne sich durch lange
Binärfolgen arbeiten zu müssen.

Auch bei der Analyse von Netzwerkdaten, Protokollen oder Dateiformaten
begegnet man dieser Darstellung. Sie erleichtert es, Bytefolgen zu
vergleichen und bestimmte Muster zu erkennen.

Wichtig ist allerdings eine Unterscheidung: Ein Byte besteht immer
aus acht Bits. Zwei Hexadezimalziffern können genau diese acht Bits
darstellen. Eine Hexadezimalziffer allein entspricht dagegen vier
Bits, also einem sogenannten Nibble.

11. Hexadezimale Zahlen und Speicheradressen

Wer sich mit Betriebssystemen, Debuggern oder hardwarenaher
Programmierung beschäftigt, sieht häufig Speicheradressen in
hexadezimaler Schreibweise. Beispiele sind Werte wie
0x1000 oder 0x7FFF.

Solche Angaben dienen dazu, bestimmte Positionen im Speicher
zu beschreiben. Statt lange Dezimalzahlen zu verwenden, lässt
sich mit Hexadezimalzahlen eine kompakte und in der Technik
verbreitete Darstellung nutzen.

Eine Adresse wie 0x1000 entspricht dem Dezimalwert
4096. Das bedeutet allerdings nicht, dass jede Speicheradresse
für Menschen direkt eine bestimmte Information erkennen lässt.
Ihre genaue Bedeutung hängt vom jeweiligen System und vom
Speicherbereich ab.

In Debugging-Werkzeugen werden hexadezimale Adressen oft zusammen
mit Speicherinhalten angezeigt. Dadurch