Die Python-Funktion hex(x) wandelt eine Ganzzahl in ihren Hexadezimal-String mit dem Präfix 0x um. Sie ist das hex-Pendant zu bin() und oct(). Typische Anwendungsfälle: Farbcodes, Speicheradressen, Bitmasken und niedrigstufige Datenrepräsentation.
Einleitung
hex() wandelt eine Ganzzahl in ihre hexadezimale String-Repräsentation mit Präfix 0x (bzw. -0x bei negativen Zahlen). Das Hexadezimalsystem nutzt 16 Ziffern (0–9, a–f) und ist in der Programmierung allgegenwärtig — von Speicheradressen über Bitmasken und Maschinenwörter bis zu HTML/CSS-Farbcodes wie #ff0080.
Drei Eigenschaften zeichnen hex() aus:
- Akzeptiert nur ganze Zahlen (
int) oder Objekte mit__index__-Methode (z. B.bool,numpy.int*). - Lowercase Buchstaben — wer Großbuchstaben braucht, nutzt einen f-String mit
:X. - Inverse Operation ist
int(s, 16), das einen Hex-String back in eine Ganzzahl wandelt.
Syntax
hex(x)x Eine Ganzzahl oder ein Objekt mit __index__()-Methode.
Rückgabewert
Ein String der Form "0x..." (Lowercase) bei positiven Zahlen bzw. "-0x..." bei negativen.
Beispiele
Standard-Konvertierung
print(hex(255))
print(hex(16))
print(hex(0))
print(hex(-255))0xff
0x10
0x0
-0xffOhne Präfix mit f-String
# Ohne 0x-Präfix
print(f"{255:x}")
# Mit Padding auf 4 Stellen
print(f"{15:04X}")ff
000FRGB-Farbcode bauen
r, g, b = 10, 142, 161
color = f"#{r:02x}{g:02x}{b:02x}"
print(color)#0a8ea1Hex-String back in int
value = int("0xff", 16)
print(value)255Praktische Beispiele
Bytes als Hex-Dump anzeigen
data = b"Hallo!"
# Variante 1: explizit per hex() pro Byte
dump = " ".join(f"{b:02x}" for b in data)
print(dump)
# Variante 2: kompakt via bytes.hex()
print(data.hex())48 61 6c 6c 6f 21
48616c6c6f21Bitmaske inspizieren
FLAG_READ = 0b001
FLAG_WRITE = 0b010
FLAG_EXECUTE = 0b100
permissions = FLAG_READ | FLAG_WRITE
print(f"Maske: {hex(permissions)} (binär: {bin(permissions)})")Maske: 0x3 (binär: 0b11)Hex-Farbcode in RGB zerlegen
color = "#0a8ea1"
value = int(color.lstrip("#"), 16)
r = (value >> 16) & 0xff
g = (value >> 8) & 0xff
b = value & 0xff
print(f"R={r}, G={g}, B={b}")R=10, G=142, B=161Praktische Hinweise
hex()liefert immer Lowercase. Für Großbuchstaben f-String mit:Xnutzen.- Präfix
0xmitliefern macht den String selbst-erklärend, lässt sich aber bei Bedarf weglassen mit Slicing oder f-Strings. - Float wird nicht akzeptiert — vorher mit
int()casten. - Verwandte Funktionen:
bin()(binär),oct()(oktal),int(s, 16)(Umkehrung).