TranslateProThe writer's translation desk

Hex to text converter

Decode hexadecimal into readable text, or encode text as hex, in either direction. Spaces, 0x and \x prefixes are handled for you.

Hex ⇄ decimal

0xFF · binary 11111111

Why two hex digits make one byte

Hexadecimal counts in sixteens, using 0–9 and then A–F for ten to fifteen. Four bits can hold exactly sixteen values (0000 to 1111), so each hex digit maps to one half-byte, called a nibble.

A byte is two nibbles, therefore two hex digits: the left one counts sixteens, the right one counts ones. 4D is 4 × 16 + 13 = 77, the letter M. Slide through the values to see how the digits roll over from F back to 0.

010044 × 16 = 64
1101D13 × 1 = 13

0x4D = 64 + 13 = 77, which in ASCII is “M”.

ASCII table: hex, decimal, character

HexDecCharHexDecChar
2032space5080P
2133!5181Q
2234"5282R
2335#5383S
2436$5484T
2537%5585U
2638&5686V
2739'5787W
2840(5888X
2941)5989Y
2A42*5A90Z
2B43+5B91[
2C44,5C92\
2D45-5D93]
2E46.5E94^
2F47/5F95_
304806096`
314916197a
325026298b
335136399c
3452464100d
3553565101e
3654666102f
3755767103g
3856868104h
3957969105i
3A58:6A106j
3B59;6B107k
3C60<6C108l
3D61=6D109m
3E62>6E110n
3F63?6F111o
4064@70112p
4165A71113q
4266B72114r
4367C73115s
4468D74116t
4569E75117u
4670F76118v
4771G77119w
4872H78120x
4973I79121y
4A74J7A122z
4B75K7B123{
4C76L7C124|
4D77M7D125}
4E78N7E126~
4F79O

Questions people ask

How do I convert hex to text?

Paste the hex string into the box. Spaces, commas, colons and 0x or \x prefixes are ignored. Every two hex digits form one byte, and the bytes are decoded as UTF-8, so ordinary ASCII and accented or non-Latin text both decode correctly.

What is the difference between hex to text and hex to ASCII?

For codes 00–7F they are the same thing, because UTF-8 was designed to match ASCII there. Above 7F, ASCII has no characters; UTF-8 combines two to four bytes into one character, which is how this converter reads them.

Why does my hex decode to strange symbols?

Either the data is not text (for example an image, a hash or encrypted bytes), or it uses a different encoding such as UTF-16 or Windows-1252. A hash like a SHA-256 digest is meant to be kept as hex, not decoded.

Why is hex used instead of binary?

One hex digit stands for exactly four bits, so a byte is always two digits. That makes long binary data far shorter and easier to read, which is why hex appears in colour codes, memory addresses, MAC addresses and file dumps.

Prefer ones and zeros? Try the binary translator.