16 symbols · 100% overhead
Hexadecimal encoding: every byte becomes two hex digits. Used everywhere — hashes, hex colors, memory dumps, and binary inspection. Type below to see which hex characters your data touches.
Text / Bytes → Base16 box — the hex encoding appears instantly in Base16 output.Copy result to grab the hex string to your clipboard.Base16 → Text box and the decoded text appears below it.16 symbols ribbon lights up to show exactly which hex characters your data touches.Clear any time to reset a box and start over.MD5, SHA, and CRC outputs are almost always shown in hex. Encode your own input to see the same byte-level format those tools produce.
Debuggers and packet captures show raw bytes as hex. Converting text both ways helps you read and write those representations.
HTML/CSS colors like #d9a441 are just three bytes of Base16. Encode or decode to move between bytes and familiar color codes.
Binary that can't be pasted as text becomes a portable, printable hex string — easy to share, diff, and copy without corruption.
See the exact UTF-8 bytes behind any character (including emoji) to diagnose why strings differ or where an extra byte crept in.
Everything runs in your browser. Nothing is uploaded, logged, or sent to a server — safe for sensitive keys and payloads.
Base16 is a numeral system with 16 symbols — 0–9 and A–F. In computing, each byte (8 bits) is written as two hex digits, so a byte with value 255 becomes FF.
No. Hex encoding is fully reversible and offers no security — anyone can decode it. It's just a different representation of the same bytes, not a way to hide data.
Because each byte needs exactly two hex digits. That's why the header says "100% overhead" — a 10-byte string becomes 20 hex characters.
No. Hex is case-insensitive, so FF, ff, and fF all mean the same byte. This tool accepts any case and always outputs uppercase.
A valid hex string always has an even number of digits, because two digits form one byte. If yours has an odd count, a digit is likely missing or you've included a stray character.
Yes. Text is encoded as UTF-8 before converting to hex, so emoji and non-Latin scripts are handled correctly. Decoding reverses the process back to the original text.
Never. All conversion happens locally in JavaScript. Your input is not sent to, stored on, or logged by any server.