user6626
0
Q:

convert between bases python

chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" #these are the digits you will use for conversion back and forth
charsLen = len(chars)

def numberToStr(num):
  s = ""
  while num:
    s = chars[num % charsLen] + s
    num //= charsLen

  return(s)

def strToNumber(numStr):
  num = 0
  for i, c in enumerate(reversed(numStr)):
    num += chars.index(c) * (charsLen ** i)

  return(num)
0
# add as many different characters as you want
alpha = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"


def convert(num, base=2):
    assert base <= len(alpha), f"Unable to convert to base {base}"
    converted = ""
    while num > 0:
        converted += alpha[num % base]
        num //= base

    if len(converted) == 0:
        return "0"
    return converted[::-1]
  

print(convert(15, 8))  # 17
0

New to Communities?

Join the community