Was Hexadezimal ist
Hexadezimal, kurz Hex, ist ein Zahlensystem zur Basis 16. Es nutzt die Ziffern 0 bis 9 und die Buchstaben A bis F, wobei A für 10 und F für 15 steht. Zwei Hex-Ziffern können jeden Wert von 0 bis 255 darstellen, also genau ein Byte. Das macht Hex zu einer kompakten und lesbaren Art, Rohdaten anzuzeigen.
Hex begegnet dir in Speicherauszügen, Mitschnitten von Netzwerkpaketen, Dateisignaturen, Farbcodes, Escape-Sequenzen im Quellcode und in Fehlerlogs. Diese Bytes wieder in Text zu verwandeln, verrät oft, was in den Daten steht.
So wandelst du Hex in Text um
Hex in Text. Füge Hex links in das Feld Hex ein. Der dekodierte Text erscheint rechts im Feld Text. Der Konverter ignoriert die üblichen Trennzeichen, du kannst also einfügen:
- Bytes mit Leerzeichen:
48 65 6c 6c 6f - einen langen String:
48656c6c6f - Präfixe im C-Stil:
0x48 0x65 0x6c - Escape-Sequenzen:
\x48\x65\x6c - Bytes mit Doppelpunkt oder Komma:
48:65:6c:6c:6f
Text in Hex. Tippe rechts in das Feld Text. Das Hex erscheint links.
Hex-Format legt fest, wie das Hex geschrieben wird:
- Mit Leerzeichen: 48 65 6c zum Lesen und Vergleichen
- Zusammen: 48656c für kompakte Speicherung und Strings im Hash-Stil
- Mit Präfix: 0x48 0x65 für C, C++ und ähnlichen Code
- Escaped: \x48\x65 für String-Literale in Python, JavaScript und Shell-Skripten
Großbuchstaben A bis F schreibt die Buchstaben groß. Kopieren übernimmt eines der Felder, und Leeren leert beide.
So funktioniert es
Zum Dekodieren entfernt der Konverter Trennzeichen, prüft, dass nur Hex-Ziffern übrig sind und dass ihre Anzahl gerade ist, und liest dann jedes Ziffernpaar als ein Byte. Die Bytes werden als UTF-8-Text dekodiert. Zum Kodieren macht er das Gegenteil: Text wird zu UTF-8-Bytes, und jedes Byte wird zu zwei Hex-Ziffern.
Jede Hex-Ziffer steht für 4 Bit. Das Byte 48 ist 4 × 16 + 8 = 72, der Code für ein großes H.
Beispiele
| Hex | Text |
|---|---|
41 |
A |
48 69 21 |
Hi! |
48 65 6c 6c 6f |
Hello |
48 65 6c 6c 6f 2c 20 57 6f 72 6c 64 21 |
Hello, World! |
63 61 66 c3 a9 |
café |
e2 82 ac |
€ |
47 72 c3 bc c3 9f 65 |
Grüße |
Derselbe Text in jedem Ausgabeformat:
| Format | café |
|---|---|
| Mit Leerzeichen | 63 61 66 c3 a9 |
| Zusammen, Großbuchstaben | 636166C3A9 |
| Mit Präfix | 0x63 0x61 0x66 0xc3 0xa9 |
| Escaped | \x63\x61\x66\xc3\xa9 |
Häufige Hex-Werte
| Hex | Zeichen | Hex | Zeichen |
|---|---|---|---|
20 |
Leerzeichen | 30 |
0 |
0a |
Zeilenumbruch | 41 |
A |
0d |
Wagenrücklauf | 61 |
a |
09 |
Tab | 7e |
~ |
Für deutsche Texte lohnt es sich, ein paar UTF-8-Folgen zu kennen: c3 a4 ist ä, c3 b6 ist ö, c3 bc ist ü, c3 9f ist ß. Steht in einem Speicherauszug dagegen ein einzelnes Byte fc für ü oder df für ß, wurden die Daten in Latin-1 (ISO-8859-1) oder Windows-1252 gespeichert, nicht in UTF-8. Dieses Tool liest nur UTF-8 und zeigt solche Bytes als Ersatzzeichen an.
Tipps und Grenzen
- Unlesbare Ausgabe bedeutet meist, dass die Daten kein Text sind. Bilder, komprimierte Dateien und verschlüsselte Daten werden zu seltsamen Symbolen und Ersatzzeichen. Das ist zu erwarten.
- Prüf bei Zahlen die Bytereihenfolge. Dieses Tool liest die Bytes in der angegebenen Reihenfolge. Mehrbyte-Zahlen in Speicherauszügen sind oft im Little-Endian-Format gespeichert, lies sie also von rechts nach links.
- Hex-Farbcodes sind kein Text.
#ff8800beschreibt Rot-, Grün- und Blauanteile, keine Buchstaben. - Hex ist keine Verschlüsselung. Es ist nur eine andere Art, Bytes zu schreiben.
Andere Wege, Hex umzuwandeln
Kommandozeile. Unter Linux und macOS macht xxd -p aus einer Datei reines Hex und xxd -r -p wieder zurück. echo -n Hello | xxd -p gibt 48656c6c6f aus.
Python. bytes.fromhex('48656c6c6f').decode() liefert Hello, und 'Hello'.encode().hex() liefert 48656c6c6f.
JavaScript (Node). Buffer.from('48656c6c6f', 'hex').toString() liefert Hello.
Excel. In der deutschen Version liefert =ZEICHEN(HEXINDEZ("48")) für einzelne ASCII-Bytes ein H, und =DEZINHEX(72) geht den umgekehrten Weg. In der englischen Version heißen die Funktionen CHAR, HEX2DEC und DEC2HEX.
Ähnliche Tools
Um dieselben Bytes als Einsen und Nullen zu sehen, nimm den Binärcode Übersetzer. Das Tool zur UTF-8-Kodierung zeigt jedes Zeichen mit seinem Codepunkt und seinen Bytes. Wenn deine Daten Base64 statt Hex sind, nimm Base64 kodieren und dekodieren.