def dectobase2(base, number): symb=["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"] global tb def tb(b, n, result=''): r = '' if n == 0: return result else: while n > b: r = symb[n%b] + result n = n/b return tb(b, n/b, str(n%b) + result) + r if type(base) != type(1): raise TypeError, 'invalid base' if base <= 0: raise ValueError, 'invalid base : %s' %base if number == 0: return '0' if number > 0: return tb(base, number) if number < 0: return '-' + tb(base, -1 * number) print dectobase2(16, 15)