Base 120 representation of integers using consonant-vowel digits
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
LICENSE
META
OMakefile
OMakeroot
README
base120.ml
base120.mli
demo.ml

README

Base120: easier-to-remember representation of integers using
consonant-vowel syllables as digits.

For example the number 182772876 (hex "ae4e48c")
is represented as "wotipeja" in base120.

Good properties:
- easier to remember than decimal, hex and other representations
- somewhat pronounceable
- about as compact as the decimal representation

Bad properties:
- will occasionally generate words which mean something unfortunate

Suggested use:
- encoding of long version numbers
- nicknaming of numeric identifiers and hashes

Encoding rules:
- each digit is made of two letters of the basic roman alphabet
- the first character of a digit is one of the 20 consonants (excluding 'y')
- the second character of a digit is one of the 6 vowels (including 'y')
- the digits map to integers in the alphabetic order ("ba" is 0, "zy" is 119)
- the representation is case-insensitive, e.g. "BA" is the same as "ba",
  "bA" or "Ba"

Number of bits per character (for large integers):
base 10:          log 10. /. log 2. = 3.32
base 120: 0.5 *. log 120. /. log 2. = 3.45
base 16:          log 16. /. log 2. = 4.00
base 32:          log 32. /. log 2. = 5.00
base 64:          log 64. /. log 2. = 6.00


Examples:

Base120      Decimal      Hexadecimal
byri         680          2a8         
bymu         658          292         
bobo         363          16b         
bita         330          14a         
ru           82           52          
biqy         317          13d         
cahy         755          2f3         
bogy         389          185         
biwi         344          158         
cewo         945          3b1         
nejibi       882962       d7912       
mekope       797467       c2b1b       
naqahe       872671       d50df       
jabisa       518724       7ea44       
cipote       123571       1e2b3       
nyroza       945834       e6eaa       
dusyfo       241101       3adcd       
myhegu       853348       d0564       
neluca       884646       d7fa6       
japaqy       526397       8083d       
budijarija   854160036    32e972a4    
bigydehuku   465023326    1bb7b15e    
behogijoby   264763085    fc7f6cd     
boxebuvibo   810501363    304f44f3    
wotipeja     182772876    ae4e48c     
bodujytoha   650329590    26c33df6    
ritufyna     139596420    8521284     
bowinajiva   802660656    2fd7a130    
qajumybe     124999081    77355a9     
sesajyzi     148094636    8d3beac