Skip to content

Instantly share code, notes, and snippets.

@ernado
Created July 24, 2013 12:16
Show Gist options
  • Save ernado/6070000 to your computer and use it in GitHub Desktop.
Save ernado/6070000 to your computer and use it in GitHub Desktop.
baseN encode
import string
def baseEncode(number, base=0):
if isinstance(number, str):
number = long(number)
if not isinstance(number, (int, long)):
raise TypeError('number must be an integer')
if number < 0:
raise ValueError('number must be positive')
if base < 0:
raise ValueError('base must be positive')
alphabet = string.digits + string.ascii_letters + '_'
if base == 0:
base = len(alphabet)
baseN = ''
while number:
number, i = divmod(number, base)
baseN = alphabet[i] + baseN
return baseN or alphabet[0]
if __name__ == '__main__':
print baseEncode(12311231231234345365464) # 39pBAwzAwRVux
print baseEncode(101) # 1C
print baseEncode('12311231231234345365464') # 39pBAwzAwRVux
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment