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:

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

Footnotes

1. | ↑ | probably |

ThijzertNice! 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.”

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

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

L DudearinoSounds 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.

Jo DesmetSo 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.

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?

Moolissa“Åtta” is “eight” in Swedish, and it doesn’t sound at all like “Atta.”

SandraDepends 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.

S JaveedI’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.

quantenschaumNo, no, no! 0x1000 is NOT thousand!

Will BickfordThis post reminded me that I created a pronunciation guide for base 256 that uses a single syllable per byte.

http://hewo.xedoloh.com/2015/04/base-256/

It uses 16 starting consonants, 4 vowels and 4 ending consonants and produces values like “bac” (0) and “zom” (255).

Rajarshi NigamHere’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

Warren MWhere were you guys four years ago? ;)

http://stackoverflow.com/questions/4701470/how-do-you-pronounce-large-hex-numbers

chingNotCHingAble to write cheques with hexadecimals now

MerlynI 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

ern0We 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).

bibbity-bee undefined0xBB0000000000000000

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

Christopher DanielsonBrilliant.

I don’t see it noted, however, that 9 times F

isn’tfleventy-five. I get 87. (And that leaves open the question of whether we should read 87 aseighty-sevensince 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.

Adrian MorganI 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

Adrian MorganEdit previous comment: I mean, of course, forty, fortred, fortou. Was obviously staring at the words for too long.

Adrian MorganOh, and also:

dettou assred effity one … not exity … wrong number, aargh.

Clive BerryMy 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”.

GeorgyEverything has been invented.

pip010 (@ppetrovdotnet)in fact 0xE0 “Ebbity” sounds like fuck-it in Bulgarian and elegantly follows 0xD0 “Dickety” in English :P

Matt Johnson0x0A1D = “a bitey dibbleteen”

Excuse me??

DHeadshotGiven 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.

mike davisIt 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.

mike davisThe 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.

TinGilfoyleA one Mr. Glen Quagmire cums to mind while reading, Giggity Giggity Goo!!!

JeanWhy not just use the NATO phonetic alphabet? https://en.wikipedia.org/wiki/NATO_phonetic_alphabet

A – Alpha

B – Bravo

C – Charlie

D – Delta

E – Echo

F – Foxtrot

0xB3 “bravo-three”

0xF5 “foxtrot-five”

0xE4 “echo-four”

0xA7 “alpha-seven”

0xC5 “charlie-five”

0xDB “delta-bee”

AlphaYankeeTHIS!

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

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

DeaditeFor between 0x19 and 0x20 (the teens)

Atteen

Biteen

Citteen

Dicteen

Ebbteen

FleTeen