Skip to content

Instantly share code, notes, and snippets.

@v1c77
Created August 30, 2017 09:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save v1c77/3d5040d9732f53c684484f2bf576c345 to your computer and use it in GitHub Desktop.
Save v1c77/3d5040d9732f53c684484f2bf576c345 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
# PYTHON VERSION > 3.4
def base36encode(number, alphabet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'):
"""Converts an integer to a base36 string."""
if not isinstance(number, int):
raise TypeError('number must be 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)
print(base36encode(1412823931503067241))
print(base36decode('AQF8AA0006EH'))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment