I found a script at http://code.activestate.com/recipes/65212/ that allows you to convert base 10 numbers to another base. I would like to convert non-base10 numbers to base 10. I wonder if I can do so by flipping the script around a bit:

# (Lovingly) ripped off from a reply to the post at
# http://code.activestate.com/recipes/65212/
# The function code is from that page
# User Interface + comments created by Alan Gilfoy, 2007-2008

def baseconvert(n, base):
"""convert positive decimal integer n to equivalent in another base (2-36)"""

    digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    # a thru z only apply in base 11 and up.
# base 11 uses only a, base 12 uses a thru b, base 13 uses a thru c, and so on.
    # 'a' is equivalent to '10' in decimal, 'b' is equivalent to '11', etc.

    try:
        n = int(n)
        base = int(base)
    except:
        return ""

    if n < 0 or base < 2 or base > 36:
        return ""

    s = ""
    while 1:
        r = n % base
        s = digits[r] + s
        n = n / base
        if n == 0:
            break

    return s

----
I'm not entirely sure how this works; I just know that it does.
It looks like the program goes through a loop that "chops away" at the inputted number, gradually adding to the outputted number as appropriate.
And what exactly does the % operator mean?



_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to