16 symbols · 100% overhead

Base16 converter

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.

0 chars
encodes to
or decode
0 chars

How to use this tool

  1. Type or paste any text into the Text / Bytes → Base16 box — the hex encoding appears instantly in Base16 output.
  2. Hit Copy result to grab the hex string to your clipboard.
  3. To go the other way, paste a hex string into the Base16 → Text box and the decoded text appears below it.
  4. The 16 symbols ribbon lights up to show exactly which hex characters your data touches.
  5. Use Clear any time to reset a box and start over.

Why this tool is helpful

Read hashes & checksums

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.

Understand memory & hex dumps

Debuggers and packet captures show raw bytes as hex. Converting text both ways helps you read and write those representations.

Work with hex colors

HTML/CSS colors like #d9a441 are just three bytes of Base16. Encode or decode to move between bytes and familiar color codes.

Inspect binary safely

Binary that can't be pasted as text becomes a portable, printable hex string — easy to share, diff, and copy without corruption.

Debug encodings & Unicode

See the exact UTF-8 bytes behind any character (including emoji) to diagnose why strings differ or where an extra byte crept in.

Stay private

Everything runs in your browser. Nothing is uploaded, logged, or sent to a server — safe for sensitive keys and payloads.

FAQ

What exactly is Base16 / hexadecimal?

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.

Is encoding the same as encryption?

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.

Why is my hex string twice as long as my input?

Because each byte needs exactly two hex digits. That's why the header says "100% overhead" — a 10-byte string becomes 20 hex characters.

Is it case-sensitive? Can I use lowercase?

No. Hex is case-insensitive, so FF, ff, and fF all mean the same byte. This tool accepts any case and always outputs uppercase.

Why do I get "odd number of characters" when decoding?

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.

Can it handle Unicode, like emoji?

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.

Does any of my data leave my browser?

Never. All conversion happens locally in JavaScript. Your input is not sent to, stored on, or logged by any server.