Skip to content

Instantly share code, notes, and snippets.

@kfr2
Created December 14, 2012 18:35
Show Gist options
  • Save kfr2/4287546 to your computer and use it in GitHub Desktop.
Save kfr2/4287546 to your computer and use it in GitHub Desktop.
# FROM: http://en.wikipedia.org/wiki/Base_36#Python_implementation
def base36encode(number):
"""Converts an integer into a base36 string."""
ALPHABET = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
if not isinstance(number, (int, long)):
raise TypeError('This function must be called on an integer.')
base36 = ''
sign = ''
if number < 0:
sign = '-'
number = -number
if 0 <= number < len(ALPHABET):
return sign + ALPHABET[number]
while number != 0:
number, i = divmod(number, len(ALPHABET))
base36 = ALPHABET[i] + base36
return sign + base36
def base36decode(number):
return int(number, 36)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment