Das Hexadezimalsystem ist ein Stellenwertsystem zur Basis 16. Es verwendet die Ziffern 0 bis 9 sowie die Buchstaben A bis F für die Werte 10 bis 15 und dient in der Informatik vor allem als kompakte, gut lesbare Schreibweise für Binärdaten.
Auch genannt: Hexadezimal, Hex
Während das Dezimalsystem mit zehn Ziffern arbeitet und das Binärsystem nur mit zwei, kennt das Hexadezimalsystem sechzehn Zeichen: 0–9 und A–F. Jede Stelle einer Hexadezimalzahl steht für eine Potenz von 16. Der praktische Vorteil: Vier Bits (ein sogenanntes Nibble) lassen sich verlustfrei durch genau eine Hexadezimalziffer darstellen, ein Byte durch genau zwei. Dadurch wirken lange Binärfolgen in Hexadezimalschreibweise deutlich kürzer und übersichtlicher.
Der Wert einer Hexadezimalzahl ergibt sich, indem jede Ziffer mit der entsprechenden Potenz von 16 multipliziert und die Ergebnisse addiert werden. Die Ziffer A entspricht dabei dem Dezimalwert 10, B entspricht 11, bis F für 15. Da 16 die vierte Potenz von 2 ist, lässt sich jede Hexadezimalziffer direkt und ohne Rundung in eine vierstellige Binärzahl übersetzen und umgekehrt. Diese feste Beziehung macht die Umrechnung zwischen Binär- und Hexadezimalsystem besonders einfach, ganz ohne komplizierte Division wie beim Dezimalsystem.
Die Bitfolge 01111111 11111110 lässt sich als Hexadezimalwert deutlich kürzer als 7FFE schreiben – beide stehen für dieselbe Zahl. Auch Farbwerte in der Webgestaltung werden hexadezimal notiert: Der Farbcode #1A2B3C beschreibt einen Rot-, Grün- und Blauanteil, jeweils dargestellt durch zwei Hexadezimalziffern pro Farbkanal.
Hexadezimalzahlen erscheinen überall dort, wo Binärdaten für Menschen lesbar gemacht werden müssen: bei Speicheradressen und Debugging-Ausgaben, in Fehlermeldungen und Absturzprotokollen, bei der Darstellung von Prüfsummen und Hashwerten, bei Farbcodes in Bild- und Webformaten sowie bei der Notation von MAC-Adressen in Netzwerken. Programmiersprachen kennzeichnen Hexadezimalwerte meist mit einem vorangestellten „0x“.
Das Hexadezimalsystem ist keine eigene Art von Daten, sondern lediglich eine andere Schreibweise für dieselben Zahlenwerte. Ein häufiges Missverständnis ist, Hexadezimalzahlen wie Dezimalzahlen zu lesen: Die Ziffernfolge „10“ bedeutet hexadezimal nicht zehn, sondern sechzehn. Ebenso ist die Groß- oder Kleinschreibung der Buchstaben A–F in vielen Programmiersprachen bedeutungslos, in manchen Kontexten aber Konvention.
Nicht verwechseln mit dem Binärsystem: Dieses kennt ausschließlich die Werte 0 und 1, während das Hexadezimalsystem eine verdichtete Darstellung derselben Binärwerte liefert. Ebenfalls abzugrenzen ist die Zeichenkodierung: Sie legt fest, welcher Zahlenwert (Codepunkt) einem Schriftzeichen entspricht, unabhängig davon, ob dieser Zahlenwert dezimal, binär oder hexadezimal notiert wird.