Hexspeak is a programmer in-joke: spelling words using only hexadecimal digits so they can double as memorable magic numbers in code. DEADBEEF, CAFEBABE, BAADF00D and 0xC0FFEE are all real constants that have been used to mark uninitialised memory or tag file formats. This tool turns your words into hexspeak and tells you whether the result is genuinely valid hex.
How it works
Hexadecimal uses sixteen symbols: the digits 0 to 9 and the letters A to F. The letters a through f map straight onto themselves. For the rest, hexspeak relies on visual lookalikes. This tool applies the common substitutions: i and l become 1, o becomes 0, s becomes 5, t becomes 7, z becomes 2, and g becomes 6. Existing digits in your input are kept as-is.
After substitution the tool checks whether every character in the word is a valid hex digit. If so, the word is a true hexadecimal number, and the tool also shows its decimal value by interpreting the string as base 16. Letters with no hex lookalike — h, j, k, m, n, p, q, r, u, v, w, x, y — are kept visible but flagged, since they break hex validity.
The substitution table
| Input letter | Hex substitution | Rationale |
|---|---|---|
| a | A | Already a hex digit |
| b | B | Already a hex digit |
| c | C | Already a hex digit |
| d | D | Already a hex digit |
| e | E | Already a hex digit |
| f | F | Already a hex digit |
| g | 6 | Looks like 6 |
| i, l | 1 | Both look like 1 |
| o | 0 | Looks like zero |
| s | 5 | Looks like 5 |
| t | 7 | Looks like 7 |
| z | 2 | Looks like 2 |
Classic examples
dead -> DEAD valid hex (= 57,005)
beef -> BEEF valid hex (= 48,879)
cafe -> CAFE valid hex (= 51,966)
decade-> DECADE valid hex (= 14,601,950)
goose -> 60052 valid hex (= 393,298)
facade-> FACADE valid hex (= 16,435,934)
hello -> HE110 not valid hex (can't map: h)
Where hexspeak appears in real software
These are not just curiosities — programmers have used hexspeak constants for decades because they are easy to spot in memory dumps:
0xDEADBEEF— filled unallocated memory in IBM RS/6000, Cisco IOS, and classic Macs to help catch use-after-free bugs.0xCAFEBABE— the magic bytes at the start of every Java.classfile, which the JVM checks to confirm the file is valid bytecode.0xBAADF00D— used by Microsoft’s debug heap in Visual C++ to mark freed memory.0xC0FFEE— appears in Motorola and Java ME implementations as a debug sentinel.0xDEADC0DE— used in Apple iOS crash reports to indicate the watchdog killed the app.
Practical use
Hexspeak is mainly for fun and for naming memorable constants, but it has real utility:
- Magic number bytes in file format headers so the format is human-identifiable in hex editors.
- Debug sentinels in embedded or low-level code — if you see
BAADF00Din memory you know immediately what it means. - Easter eggs in firmware and bootloaders.
Everything runs locally in your browser.