Pronouncing Hex

June 8, 2022

In the show Silicon Valley T.J. Miller’s character, Erlich Bachman, asks someone “… what nine times F is. It’s fleventy-five.”

The answer is 0x87. It sounds like it should be 0xF5, so Tim Babb took this and made a whole scheme for pronouncing hex numbers. Before that, 0xF5 would have been “fimtek five” in S.R. Rogers’ 2007 scheme, “fytonsu” in John W. Nystrom’s 1859 scheme, and “frosty five” in Robert Magnusson’s 1968 scheme:

Robert Magnusson hex scheme

None of these took off, which is just fine, but I still want to know whether to pronounce 0x10 as “ten” or “one zero”. I can’t tell if “eleven” means two written 1s, or if it always means the abstract number that’s represented in decimal as 11. Most would probably say “eleven hex” for 0x11, but then is 0b11 “eleven binary”? That seems completely wrong.

Rogers used “ten”, “eleven”, and “twelve” to mean their decimal value, so he used those for 0xA, 0xB, and 0xC. After that he made up other names, like “draze” for 0xD. Maybe that’s because “eleven” and “twelve” don’t have a “ten” or “teen” in their name, so they can be decoupled from base ten. Except that the “tw” of “twelve” comes from “two”!

I had a friend once argue that “sixteen” clearly means six plus ten, so 0x10 should be pronounced “sixteen” (or “one zero hex”) and 0x16 should not. But that depends on you defining “ten” to be decimal 10 and not 0x10. It would be internally consistent to define 0x10 as “ten” and 0x46 “forty six hex”. You’d just need to spell out the letters if they appear, like “forty eff” for 0x4F and “eff five” for 0xF5.

In the end I think it’s too awkward to think of “ten” as just decimal 10. That means 0xA is “ten” and 0x10 is, what, “hex one zero”? Then 0x4000 is “hex four zero zero zero”? I’ll stick with what I’ve seen most people do, which is to re-use the decimal labels and just say “hex” in front: “hex four thousand”. After all, bases are just ways of writing numbers, and speech can just tag along with that instead of pretending that spoken numbers are always magically in decimal.