How to pronounce hexadecimal

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

33 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.”

    Reply
    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…

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

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

      Reply
  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?

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

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

    Reply
  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

    Reply
  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

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

    Reply
  7. bibbity-bee undefined

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

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

    Reply
  9. Adrian Morgan

    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

    Reply
  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”.

    Reply
  11. DHeadshot

    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.

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

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

    Reply
    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”.

      Reply
  14. Matthew Christopher Bartsh

    The article is very well-written. I did chuckle when I read the footnote that read “Probably”. What you have done is to make a pronunciation system for base 16 that is analogous to that which we use for base 10. I like that you gave plenty of examples.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *