Ratgeber · 6 Min Lesezeit

Hexadezimal verstehen: warum Programmierer Basis 16 lieben

Warum Speicheradressen, Farbcodes und Maschinencode hexadezimal geschrieben werden, obwohl Computer binär arbeiten. Mit Lese-Tricks und Praxisbeispielen.

Wer in den Quelltext eines Programms schaut, stößt schnell auf Schreibweisen wie 0xFF, #3A86FF oder 0xDEADBEEF. Das alles ist Hexadezimal, ein Zahlensystem zur Basis 16. Auf den ersten Blick wirkt es seltsam: Computer rechnen doch binär, warum dann nicht einfach 11111111 statt 0xFF schreiben? Die Antwort liegt in einem cleveren Verhältnis zwischen den beiden Systemen.

Vier Bits gleich eine Hex-Ziffer

Hexadezimal nutzt 16 Ziffern: die bekannten 0 bis 9 und zusätzlich A bis F für die Werte 10 bis 15. Der entscheidende Punkt ist die Beziehung zur Binärdarstellung. Weil 16 genau 2⁴ ist, entspricht jede Hex-Ziffer exakt vier Binärziffern, einem sogenannten Nibble.

HexBinärDezimal
000000
100011
701117
A101010
F111115

Diese 1:4-Zuordnung macht die Umrechnung zwischen Hex und Binär trivial. Die Hex-Zahl 2A ist 0010 1010 in Binär, und umgekehrt. Keine Division, keine Rechnung, einfach die Nibble-Tabelle anwenden. Wer Hex flüssig lesen kann, sieht in einer Adresse wie 0x7FFF sofort das zugehörige Bitmuster.

Warum nicht Oktal oder Dezimal?

Vor Hexadezimal war das Oktalsystem verbreitet. Auch Oktal hat eine schöne Beziehung zu Binär: 8 = 2³, also entspricht jede Oktal-Ziffer drei Bits. Auf 12-, 24- oder 36-Bit-Maschinen, wie sie in den 1960ern üblich waren, passten Oktal-Triplets gut auf die Wortbreite. Mit dem Aufkommen der 8-Bit-, 16-Bit- und 32-Bit-Architekturen verlor Oktal an Eleganz: drei teilt 8 nicht ohne Rest.

Dezimal ist für Menschen vertraut, lässt aber Bitmuster nicht sichtbar. Aus einer Zahl wie 4294967295 sieht niemand, dass sie 11111111 11111111 11111111 11111111 entspricht. In Hex sind es 0xFFFFFFFF — alle vier Bytes auf voller Last, sofort erkennbar.

Wo Hex überall steckt

Farbcodes im Web. Ein Webfarbcode wie #FF6633 zerfällt in drei Bytes: FF (255) für Rot, 66 (102) für Grün, 33 (51) für Blau. Hex macht hier zweierlei lesbar: die Aufteilung in Kanäle und die Intensitäten innerhalb der Kanäle. Mehr dazu in unserem Artikel zu RGB und Hex.

Speicheradressen. Ein Debugger zeigt Adressen wie 0x7FFE3A40 an. In Hex passt eine 32-Bit-Adresse in 8 Zeichen, eine 64-Bit-Adresse in 16. In Dezimal wären das bis zu 20 Stellen.

Maschinencode. Die Bytes eines kompilierten Programms werden in Hex notiert. Eine x86-Anweisung wie MOV EAX, 1 wird zu B8 01 00 00 00. Hex erlaubt es, einzelne Befehlsbytes zu identifizieren und zu manipulieren.

MAC-Adressen wie 00:1A:2B:3C:4D:5E und UUIDs wie 550e8400-e29b-41d4-a716-446655440000 sind hexadezimal kodiert, weil sie aus Byte-Sequenzen bestehen.

Hash-Werte. Ein SHA-256-Hash hat 256 Bit und wird typischerweise als 64 Hex-Zeichen geschrieben. In Dezimal wäre es eine Zahl mit bis zu 78 Stellen, kaum noch handhabbar.

Lese-Tricks für die Praxis

Wer Hex regelmäßig liest, lernt einige Muster auswendig:

  • 0xFF = 255 = volle Intensität eines Bytes
  • 0x80 = 128 = nur das höchste Bit gesetzt (Vorzeichenbit in 8 Bit)
  • 0x00FF00FF = abwechselnd 0 und 255, typisches Bitmuster für Tests
  • 0xDEADBEEF, 0xCAFEBABE, 0xC0FFEE = sogenannte „magic numbers”, die Programmierer in Debug-Speicher schreiben, um unerwartete Werte sofort zu erkennen

Schnell-Konvertierung großer Hex-Zahlen: jede Hex-Stelle entspricht 4 Bit, also wächst der Wert pro Stelle um den Faktor 16. 0x100 ist 256, 0x1000 ist 4096, 0x10000 ist 65536. Wer diese Eckwerte präsent hat, schätzt Speichergrößen schnell ab.

Schreibweisen im Überblick

Verschiedene Sprachen und Kontexte nutzen unterschiedliche Hex-Präfixe:

  • 0x2A in C, Java, Python, JavaScript, Rust
  • &H2A in Visual Basic
  • $2A in Pascal und Assembler
  • 2Ah mit Suffix in einigen Assembler-Dialekten
  • #2A für Webfarben (allerdings ohne Trennung, immer 6 oder 8 Zeichen)
  • 2A₁₆ mit tiefgestellter Basis in Mathebüchern

Im Alltag dominieren 0x und #. Unser Hex-zu-Binär-Konverter akzeptiert die Zahl mit oder ohne Präfix.

Wann Hex nicht hilft

Hex ist kompakt und bitnah, aber unintuitiv für nicht-technische Anwendungen. Mengen, Preise, Zeitangaben und alles, was Menschen normalerweise lesen, bleiben dezimal. Auch in Programmen, in denen Bits keine Rolle spielen (Listenindex, Schleifenzähler), wäre Hex eher Show als Hilfe. Die Faustregel: sobald Bitmuster, Adressen oder Bytes im Spiel sind, ist Hex die richtige Wahl.

Verwandte Themen

Vertiefend zu Hex und Binär: Hex zu Binär umrechnen, unser Artikel zur RGB-Hex-Farbe, und ein Blick auf Oktal im Unix-Kontext.

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige