www.Michael-Forman.com

Transliteration of Numbers of an Arbitrary Base>>  Click to open

A post on Slashdot asked the question, how does one transliterate numbers of arbitrary bases? For example the number "562" is transliterated as "five hundred sixty two" but how would one transliterate the hex number "0xDEADBEEF"?

The text below attempts to answer that question using two methods. The first is a rigorous and technically accurate method but is difficult to use. The second is technically less rigorous but is simple to use.

Introduction to American and European Numeric Transliteration


Methods of transliterating numbers from their written form to thier spoken form employ two distinct structures. The first is several unique power-of-ten suffixes appended to individual root-word digits and the second is an incremental multiplier added to groups of numbers in powers of 103.

The unique power-of-ten suffixes are as follows.
Value Suffix Example Notes
100 - seven No ending
101 -ty seventy 10-12, 20, and 30 are irregular
102 -hundred seven hundred
The incremental modifiers represent powers of 103 or in the case of European incremental modifiers, powers of 106 in conjunction with "thousand."
Value American European
100 - -
103 thousand thousand
106 million million
109 billion thousand million
1012 trillion billion
1015 quadrillion thousand billion
1018 quintillion trillion
Note that the values represented by American incremental modifiers are derived by taking the numeric prefix of the transliteration, adding one, multiplying the result by three, then taking ten to that power. Thus one trillion is 10(3+1)3 or 1012. The European convention uses latin prefixes to denote powers of a million. Thus in Europe one billion is (106)2 or 1012, which is equal to a trillion using American conventions.

In summary, the American system employs three suffixes for the ones, tens, and hundreds place with a unique incremental modifier used for multiples of 103. The European system also uses three suffixes for the ones, tens, and hundreds place but places a unique incremental modifier only at multiples of 106. Because only three suffixes are employed in the European transliteration scheme (instead of six to span 106) the first three suffixes are reused by collectively multiplying groups by the modifier "thousand." This allows the three unique suffixes to span the required range of 106.

Using the American methodology, the number "785,391,247,462" is transliterated as follows.
785,391,247,462

7*1011 + 8*1010 + 5*10+
3*10 + 9*10 + 1*10+
2*10 + 4*10 + 7*10+
4*10 + 6*10 + 2*10

(7*102 + 8*101 + 5*100)*109+
(3*102 + 9*101 + 1*100)*106+
(2*102 + 4*101 + 7*100)*103+
(4*102 + 6*101 + 2*100)*100

(7-hundred + 8-ty + 5) billion +
(3-hundred + 9-ty + 1) million +
(2-hundred + 4-ty + 7) thousand +
(4-hundred + 6-ty + 2)

seven hundred eighty five billion,
three hundred ninety one million,
two hundred forty seven thousand,
four hundred sixty two
Using the European methodology, the number is transliterated as follows.
785,391,247,462

7*1011 + 8*1010 + 5*10 + 3*10 + 9*10 + 1*10 +
2*10 + 4*10 + 7*10 + 4*10 + 6*10 + 2*10

((7*102 + 8*101 + 5*100)*103 + 3*102 + 9*101 + 1*100)*106 +
((2*102 + 4*101 + 7*100)*103 + 4*102 + 6*101 + 2*100)*100

((7-hundred + 8-ty + 5) thousand + 3-hundred + 9-ty + 1) million +
((2-hundred + 4-ty + 7) thousand + 4-hundred + 6-ty + 2)

seven hundred eighty five thousand three hundred ninety one million,
two hundred forty seven thousand four hundred sixty two
What's interesting to note, is that the value of the incremental modifier is arbitrary. Americans use 103, Europeans use 106, and Japanese use 104 (more on that to follow).

Method I: Technically Accurate but Difficult


Thus to answer the question of how to transliterate numbers of an arbitrary base, we must simply define the standard suffixes, define a method for constructing incremental modifiers, and settle on a size of the multiplier.

I suggest the selection of B3 as the value of the incremental modifier's multiplier, where B represents the base number. It will minimize the number of suffixes required, while avoiding the complication of including an additional multiplier to span large values (as in the European system). Given that, only three repeating suffixes and a system of naming incremental modifiers based on powers of B3 are required.

For the three repeating suffixes, I suggest a naming scheme based on genitive Latin ordinal numbers, where that ordinal corresponds to the power of the base and can be translated as "of the nth."

Value Latin Suffix
B0 nulli -
B1 primi -primi
B2 secundi -secundi
Note that the first suffix is omitted as in English (and other European languages). The suffix for B1 is "-primi" and the suffix for B2 is "-secundi." As an example, the number "145," transliterated, using base-ten-specific naming conventions as "one hundred fourty five," would be transliterated using the base-generic method as "one secundi fourprimi five." (Awkward? Stay tuned. I'm just getting started.)

As stated above, the incremental modifier has been selected to be a multiple of B3. To represent that value, the root word "trigarium," meaning "team of three horses" in Latin, has been selected. Additional incremental modifiers are simply constructed by adding Latin numerical prefixes.
Value Latin Abbreviation
B3 trigarium trig
B6 bitrigarium bitrig
B9 tritrigarium tritrig
B12 quadtrigarium quadtrig
B15 quinttrigarium quinttrig
B18 sextrigarium sextrig
B21 septtrigarium septtrig
Using this system, the hex number "0xDEADBEEF" transliterates as follows.
DEADBEEF

0*168 + D*167 + E*166 +
A*165 + D*164 + B*163 +
E*162 + E*161 + F*160

(0*162 + D*161 + E*160)x166 +
(A*162 + D*161 + B*160)x163 +
(E*162 + E*161 + F*160)x160

(D-primi + E) bitrig +
(A-secundi + D-primi + B) trig +
E-secundi + E-primi + F)

D-primi E bi-trig,
A-secundi D-primi B trig,
E-secundi E-primi F

It's absolutely gibberish-tastic!

Method II: Technically Inaccurate but Easy to Use


The second method simply steals all endings from the existing base-ten transliteration method. Provided that the base is made clear, there's no chance of error. I mean, how many of us really use MiB instead of MB? Using this simpler system, the hex number "0xDEADBEEF" transliterates as follows.
DEADBEEF

0*168 + D*167 + E*166 +
A*165 + D*164 + B*163 +
E*162 + E*161 + F*160

(0*162 + D*161 + E*160)x166 +
(A*162 + D*161 + B*160)x163 +
(E*162 + E*161 + F*160)x160

(D-ty + E) million +
(A-hundred + D-ty + B) thousand +
E-hundred + E-ty + F)

D-ty E million,
A-hundred D-ty B thousand,
E-hundred E-ty F

And that's all I have to say about that.


Copyright © 2008 Michael Forman