Search code examples
pythonfunctiondecimalhex

Python convert decimal to hex


I have a function here that converts decimal to hex but it prints it in reverse order. How would I fix it?

def ChangeHex(n):
    if (n < 0):
        print(0)
    elif (n<=1):
        print(n)
    else:
        x =(n%16)
        if (x < 10):
            print(x), 
        if (x == 10):
            print("A"),
        if (x == 11):
            print("B"),
        if (x == 12):
            print("C"),
        if (x == 13):
            print("D"),
        if (x == 14):
            print("E"),
        if (x == 15):
            print ("F"),
        ChangeHex( n / 16 )

Solution

  • If you want to code this yourself instead of using the built-in function hex(), you can simply do the recursive call before you print the current digit:

    def ChangeHex(n):
        if (n < 0):
            print(0)
        elif (n<=1):
            print n,
        else:
            ChangeHex( n / 16 )
            x =(n%16)
            if (x < 10):
                print(x), 
            if (x == 10):
                print("A"),
            if (x == 11):
                print("B"),
            if (x == 12):
                print("C"),
            if (x == 13):
                print("D"),
            if (x == 14):
                print("E"),
            if (x == 15):
                print ("F"),