This bit from HBO’s Silicon Valley cracked me up:

Some kid is pitching his revolutionary startup idea to entrepreneur Elrich Bachman:

Kid: Here it is: Bit… soup. It’s like alphabet soup, BUT… it’s ones and zeros instead of letters.
Bachman: {silence}
Kid: ‘Cause it’s binary? You know, binary’s just ones and zeroes.
Bachman: Yeah, I know what binary is. Jesus Christ, I memorized the hexadecimal times tables when I was fourteen writing machine code. Okay? Ask me what nine times F is. It’s fleventy-five. I don’t need you to tell me what binary is.

We infer that “fleventy-five” is a hexadecimal number, commonly used in coding; presumably it’s 0xF5 (which is not 0x9 times 0xF, as it happens). But instead of saying “eff-five” for the byte 0xF5, Bachman has come up with some kind of novel system for the English-ification of hex digits.

He’s on to something. We have ordinary English words for decimal numbers, with names based on the digits and their place-value. “Seventy” is the word for two-digit chunks starting with the digit seven, for example. It might appear in the number “seventy-three”, or “five hundred seventy-one thousand”; both numbers with a 7 digit in an appropriate place. “Fleventy”, then, would be the number for two-digit chunks starting with F.

Hex only adds more kinds of digits (the symbols A through F). Could we follow Bachman’s lead and add more number-names for the extra digit symbols, and pronounce hex just like a decimal number? Could we have a system that attains the unwieldiness and syllable count of spoken English numbers, with all the respectable seriousness of saying the word “fleventy”?

I’m glad you asked. This has never been done before(1)probably, but fear not; here are the official new number-words for hexadecimal. You may start using them immediately:

Hex Place value  Word
0xA0 “Atta”
0xB0 “Bibbity”
0xC0 “City”
0xD0 “Dickety”
0xE0 “Ebbity”
0xF0 “Fleventy”

I think it would help to solidify this with some examples:

0xB3 “bibbity-three”
0xF5 “fleventy-five”
0xE4 “ebbity-four”
0xA7 “atta-seven”
0xC5 “city-five”
0xDB “dickety-bee”

## Higher place values

But really, we must go further. What about numbers larger than a byte? We have the words “hundred” and “thousand” for decimal place values higher than ten, so why not something for hex place values higher than 0x10? Say, for multiples of 0x100?

For this, I propose “bitey”.

Resulting in:

0xDAF1 “dickety-A bitey fleventy-one”
0xE137 “ebbity-one bitey thirty-seven”
0xA0C9 “atta-bitey city-nine”
0xBBBB “bibbity-bee bitey bibbity-bee”

Naturally, we could make yet larger numbers by devising some names for larger place values, and combine them with intermediate values, in the same way that we compose decimal numbers like “thirty thousand” or “six hundred fifty one million”. As in English, place value names could be dropped if you’re feeling brief. We’ll also need hex-digit words for the “teens”.

## Try it

I’ll leave you to explore the new naming system with this toy:

Say place values

How we’ve conversed about hex without a system like this is beyond me. You’re welcome.

Footnotes   [ + ]

 1 ↑ probably

## 32 thoughts on “How to pronounce hexadecimal”

1. Thijzert

Nice! I’d like to suggest modeling the higher-order digits on Knuth’s yllions: instead of inventing a prefix every other hex digit, we’ll only have to invent a prefix for 2 digits, 4, 8, 16, etc.

So if 0x10000 is pronounced “giggly”, 0xDEADBEEF is “Dickety-ee bitey atta-dee giggly bibbity-ee bitey ebbity-eff.”
If 0x100000000 is pronounced “hobbity”, 0xFACEB00BDEFEC8ED is “Fleventy-ay bitey city-ee giggly bibbity bitey bee hobbity dickety-ee bitey fleventy-ee giggly city-eight bitey ebbity-dee.”

1. tbabb Post author

Indeed, try your examples with the widget at the bottom. :)

I do quite like “hobbity” and “giggly” as halfword and fullword names…

2. L Dudearino

Sounds like the lyrics from a Disney movie.

Fleventy-ay, dickety-ee, bippity boppity boo.
Put em together and what have you got? Hexadecimal for you.

3. Jo Desmet

So Cool.

Lets improve the hexadecimal pronunciation completely over the decimal system: starting with most significant digits we are required to start counting before we can start the pronunciation. So why not switching that around, and start with the least significant digits.

That way we can build up as we start pronunciation, without the need of pre-parsing the text. It is less memory intensive, requires less CPU.

2. McGroarty

“Atta” is “eight” in Swedish. That’s confusing.

Also, low numbers are generally few syllables. “Bibbity,” “Dickity” and “Ebbity” aren’t as charming as “Fleventy.” Maybe something quicker to pronounce?

1. Sandra

Depends on the region. My Åtta does sound like a Stockholmer’s Atta.

It’s clear enough within each region but when they meet it’s sometimes confusing.

3. S Javeed

I’ve been doing this for a while but I ended up using a very simple system:

A = Ah-ty
B = Bee-ty
C = Cee-ty
D = Dee-ty
E = Eee-ty
F = Eff-ty

The hundreds, thousands and the like remain the same; they have different meanings though. Hundred is 0x100 and thousand is 0x1000.

0xBEEF would be B thousand, E hundred and Eee-ty Eff. 0xDEADBEEF would be Dee-ty E million, A hundred and Dee-ty B thousand, E hundred and Eee-ty F.

4. Rajarshi Nigam

Here’s my hexahaiku:

 seventy-seven fifty-five bibbity-two twenty-two-oh-two 

or:

 x77 x55 xB2 x2202 

or, written using HTML’s “&#x” functionality

 w U ² ∂ 

Which means:
w U ² ∂

Or, “double u [is] u squared’s partial differential”

Which makes it an English pronouncible hex, haiku, unicode, math formula

5. Merlyn

I like this. But (e.g.) 0x70 is not the same as 70 and shouldn’t have the same name.

You might have more luck with something like:

0=zero, 1=one, 2=two, 3=three, 4=four, 5=five, 6=six, 7=seven, 8=eight, 9=nine, A=ay, B=bee, C=see, D=dee, E=ee, F=eff

and then

10=sen, 20=twensen, 30=thirsen, 40=forsen, 50=fifsen, 60=sixsen, 70=sevensen, 80=eightsen, 90=ninesen, A0=aysen, B0=beesen, C0=seesen, D0=deesen, E0=eesen, F0=effsen

and perhaps:

100=bytred
10000=wordion

6. ern0

We have a lot to do: we have to find names for hexadecimal numbers $10..$90, because \$21 is not twenty-one (actually it’s thirty-three).

7. bibbity-bee undefined

0xBB0000000000000000
“bibbity-bee undefined bitey halfy bitey worddion bitey halfy bitey”

8. Christopher Danielson

Brilliant.

I don’t see it noted, however, that 9 times F isn’t fleventy-five. I get 87. (And that leaves open the question of whether we should read 87 as eighty-seven since those aren’t tens we have 8 of.

Anyway, I have thought about language and place value quite a bit in the context of working with future elementary teachers. Tons of fun. You may be amused by an article I published on the matter.

I just spent a few minutes (well, quite a few) coming up with a draft for yet another alternative system. Not definitive. Modification by others welcome.

1 = one *10= teeny *100= wunred *1000= wuntou
2 = two *10= twenty *100= toored *1000= tootou
3 = three *10= thirty *100= thirtred *1000= thirtou
4 = four *10= fourty *100= fourtred *1000= fourtou
5 = five *10= fifty *100= fifred *1000= fiftou
6 = six *10= sixty *100= sixred *1000= sixtou
7 = seven *10= seventy *100= sevenred *1000= seventou
8 = eight *10= eight *100= eightred *1000= eightou
9 = nine *10= ninety *100= ninered *1000= ninetou
A = ay *10= assity *100= assred *1000= asstou
B = bee *10= betty *100= betred *1000= bettou
C = cee *10= cetty *100= cetred *1000= cettou
D = dee *10= detty *100= detred *1000= dettou
E = ee *10= exity *100= exred *1000= extou
F = eff *10= effity *100= effred *1000= efftou

Hence,
dettou assred exity one
extou wunred thirty seven
asstou cetty nine
bettou betred betty bee

10. Clive Berry

My understanding is that the “ty” suffix is a derivation of “tens”, so that would be the first thing you would have to replace. You could not use the word “hex” as that strictly means six, which is why the full name of the system is hexadecimal. “hxd” would be very difficult to pronounce and no gain. “exml” might be manageable, so that 0x74 would be pronounced as sevenexml-four. Compromises would be needed of course as they are in decimal. We do not speak of “threety-five”.

Given that “ty” is an abbreviated version of “ten” (ditto “teen”), while at uni, I cane up with an alternative: “nib” (then “byte”, then “Word” etc) and just used the letters as they were. So F5 was “Effnib Five”, A6 was “Ayynib Six”, 1E was “Onenib Ee” and 42 was “Fournib Two”. Similarly 1F6 was “One byte Effnib Six”, 4502 was “Fournib Five byte two” and DEADBEEF was “Deenib Ee byte Ayynib Dee word Beenib Ee byte Eenib Eff”. This does have the problem that “Sevennib Ee” sounds like “Sevennib Bee” and “Eightnib Dee” sounds like “Ayynib Dee” (and “Dee word” sounds a little like “Dword”), but nevertheless it helped me when I was working with hexadecimal numbers.

12. mike davis

It also occurred to me that Bachman should have said, “I memorized the hexadecimal times tables when I was E.”

To really make the hex number-name thing complete, we need new replacements for the groupings below Atta, too. If you say “Twenty”, it isn’t clear if you are speaking Decimal or Hex. So it should be Twentex, or Twiddy, or Doublety. And the teens also need to be renamed (Decimal Sixteen and Seventeen are written “10” and “11” in hex. Don’t call them “Ten” and “Eleven”. Call them “Oneitty” and “Oneitty-one”. Or maybe “Singlety-one” and “Singlety-two”.

So after F, counting by sixteens:
Singlety, Doublety, Triplety, Quadry, Penty, Hexty, Septy, Octy, Nony, Atta, Bibbity, City, Dickety, Ebbity, Fleventy.

That way you can say any number an not have the listener be unsure about whether you are speaking in hex or decimal.

13. mike davis

The earlier comment attributed to Mike Davis (who is not fluent in hexadecimalese) was pasted from an email to Davis from Steve Cauffman. The brilliance of singlety-two is all Steve; Mike just wanted to share it with Bzarg.

1. AlphaYankee

THIS!

… is how me and my coworkers have been reading hex strings out loud for years.

Although 0xDB would be “delta-bravo”, not “delta-bee”.