Hex Decoder
Use this hex decoder for byte dumps, protocol payloads, file headers, and escaped data. It accepts common hex formats and makes control characters such as 0A and 0D easier to identify.
When enabled, up to 20 inputs, outputs, and settings stay in this browser only.
Maximum decoded size: 1,000,000 bytes. Paste the hex byte column only; remove offsets and text gutters.
Hex Decoder Examples
| Hex input | Decoded result | Meaning |
|---|---|---|
| 89 50 4E 47 | PNG signature | The first four bytes of the standard eight-byte PNG signature. |
| 25 50 44 46 | File signature that identifies a PDF document. | |
| 47 45 54 20 2F 20 48 54 54 50 | GET / HTTP | Opening bytes of a captured HTTP request payload. |
| 0x48 0x69 | Hi | 0x-prefixed bytes, common in code and debugger output. |
| 0D 0A | CRLF line break | Carriage return + line feed pair marking a protocol line ending. |
The examples above show common search and debugging cases: 48656C6C6F = Hello, 0A = line feed, and 0D = carriage return.
ASCII Character Map
Printable Characters (32–126)
| Char | Hex | Dec | Description |
|---|---|---|---|
| Space | 20 | 32 | Space character |
| 0 | 30 | 48 | Digit zero |
| A | 41 | 65 | Uppercase A |
| a | 61 | 97 | Lowercase a |
| ~ | 7E | 126 | Tilde |
Control Characters (0–31, 127)
| Char | Hex | Dec | Description |
|---|---|---|---|
| NUL | 00 | 0 | Null character |
| TAB | 09 | 9 | Horizontal tab |
| LF | 0A | 10 | Line feed, written as \n |
| CR | 0D | 13 | Carriage return, written as \r |
| DEL | 7F | 127 | Delete control character |
How Hex to ASCII Works
Split into byte pairs
"48 65 6C 6C 6F"
→ [48]
[65]
[6C]
[6C]
[6F]
Convert each to decimal
48₁₆ = 72₁₀,
65₁₆ = 101₁₀, …
Map to ASCII character
72 → 'H',
101 → 'e',
108 → 'l',
108 → 'l',
111 → 'o'
Result
"Hello"
What is Hexadecimal?
Hexadecimal (base-16) is a number system that uses 16 symbols: digits 0–9 and letters A–F. It's the standard way to represent binary data in a human-readable format because each hex digit maps exactly to 4 bits, making it compact and easy to convert mentally.
| Base | Name | Digits | Example (72) |
|---|---|---|---|
| 2 | Binary | 0, 1 | 01001000 |
| 8 | Octal | 0–7 | 110 |
| 10 | Decimal | 0–9 | 72 |
| 16 | Hexadecimal | 0–9, A–F | 48 |
Every time you look at a hex dump, a network packet, or a file header, you're seeing data encoded as hex. Converting it to readable ASCII text is one of the most common operations in debugging, data analysis, and reverse engineering.
Hex to ASCII Conversion Method
The conversion from hexadecimal to ASCII is mechanical and reversible:
- Split the hex string into byte pairs — each pair of hex digits represents one byte (8 bits)
- Convert each pair to decimal — multiply the first digit by 16, add the second:
4×16 + 8 = 72 - Look up the ASCII character — decimal 72 = 'H', 101 = 'e', 108 = 'l', 111 = 'o'
- Combine characters — the result is "Hello"
ASCII vs UTF-8
For values 0x00–0x7F, ASCII and UTF-8 produce identical results — UTF-8 is backward-compatible with ASCII.
The difference appears above 0x7F: ASCII can't represent these values, while UTF-8 uses multi-byte sequences
to encode over 1 million characters. Toggle between encodings in the format options above. If your decoded
text shows up as garbled symbols like café, see our guide on
decoding hex to UTF-8 text
to fix the encoding mismatch.
Common Use Cases
- Debugging network traffic — reading hex dumps from Wireshark or tcpdump to see the plaintext inside a packet
- Reverse engineering — examining binary file headers and signatures (for example,
89 50 4E 47begins the standard PNG signature) - Web development — inspecting byte sequences written as continuous hex,
0x48, or\x48escapes - Cryptography — reading hash outputs, keys, and encrypted data that are conventionally printed in hex
- Serial communication — interpreting UART/SPI/I2C data logs from embedded devices and microcontrollers
- Database administration — viewing BLOB and binary column data dumped as hexadecimal
A typical workflow: you capture a payload, copy the hex, and paste it here to confirm what the bytes
actually say. For example, the hex 47 45 54 20 2F 20 48 54 54 50 decodes to
GET / HTTP — the opening of an HTTP request. If you regularly work with raw byte output,
our guide on reading and converting hex dumps
walks through xxd, hexdump, and identifying files by their signature. And because hexadecimal also describes
colors on the web, the same base-16 you see here powers CSS values like #FF5733 — explained in
how hex color codes work.
Decoding Byte Dumps, Payloads, and File Headers
A hex decoder earns its keep when you are staring at raw bytes and need to know what they say.
Capture a packet in Wireshark, dump a file with xxd or hexdump, or copy a
BLOB column out of a database, and you get hex — paste it above to see the plaintext hiding inside.
The decoder normalizes spaced, continuous, colon-separated, and 0x-prefixed input
automatically. Copy the hex byte column only; remove address offsets and the printable-text gutter first.
Reading magic bytes
The first bytes of a file identify its format more reliably than the extension does. Decode the first
line of a dump and compare: 89 50 4E 47 marks a PNG, 25 50 44 46 decodes to
%PDF, 50 4B 03 04 is a ZIP archive (also DOCX and JAR), and
7F 45 4C 46 is an ELF executable. Our walkthrough on
reading and converting hex dumps
covers offsets, the ASCII gutter, and a longer signature table.
Spotting control characters
Decoded payloads are full of bytes that do not print: 0A (line feed), 0D
(carriage return), 09 (tab), and 00 (null). Use the non-printable option above
to render them as escapes such as \x0A or Unicode code points so delimiters and
terminators in a protocol stream stay visible instead of vanishing into whitespace.
Related Hex Conversion Pages
Guides & Tutorials
View all articlesWant to understand what happens behind the converter? These in-depth guides cover the mechanics of hexadecimal, ASCII, UTF-8, and reading raw byte data — with code examples you can copy.