# BaseConvert class,
# converts an unsigned base 10 integer to a different base and vice versa.
# ______________________________________________________________
# BaseConvert
# |
# |________ constructor(newBase:string)
# | uses newBase string var for convertion
# | [i.e. "0123456789abcdef" for an hex convertion]
# |
# |________ toBase(unsignedInteger:uint):string
# | return base value of input
# |
# |________ fromBase(baseString:string):uint
# return base 10 integer value of base input
# --------------------------------------------------------------
# @Compatibility >= Python 2.3
# @Author Andrea Giammarchi
# @Site http://www.devpro.it/
# @Date 2006/06/05
# @Version 1.0
class BaseConvert:
__base = ""
__baseLength = 0
def __init__(self, __base):
self.__base = __base
self.__baseLength = len(__base)
def toBase(self, num):
module = 0
result = ""
while num != 0:
module = num % self.__baseLength
result = self.__base[module] + result
num = int((num - module) / self.__baseLength)
if result == "":
result = self.__base[0]
return result
def fromBase(self, str):
pos = 0
strLen = len(str) - 1
result = 0
while pos < strLen:
result = result + (pow(self.__baseLength, strLen - pos) * self.__base.find(str[pos]))
pos = pos + 1
if strLen >= 0:
result = result + self.__base.find(str[pos])
return result;
|