Hexadecimal to Decimal Conversion in Python

Hexadecimal to Decimal Conversion

Hexadecimal to Decimal conversion is the process of converting a hexadecimal number (base-16) into its equivalent decimal number (base-10). Each hexadecimal digit represents a power of 16.

For example, the hexadecimal number 1F is equal to decimal 31 because:

(1 × 16¹) + (F × 16⁰) = 16 + 15 = 31

We will explore three methods to convert a hexadecimal number to a decimal number using Python programming.

Method 1: Using Loop

We extract each digit of the hexadecimal number, multiply it by the corresponding power of 16, and sum the results.

def hex_to_decimal(hex_str):
    decimal = 0
    length = len(hex_str)
    for i in range(length):
        if '0' <= hex_str[i] <= '9':
            value = ord(hex_str[i]) - ord('0')
        else:
            value = ord(hex_str[i]) - ord('A') + 10
        decimal += value * (16 ** (length - i - 1))
    return decimal

hex_str = input("Enter a hexadecimal number: ").upper()
print("Decimal equivalent:", hex_to_decimal(hex_str))
            

Output:

Enter a hexadecimal number: 1F
Decimal equivalent: 31

Method 2: Using Built-in Function

We can use Python's int() function to directly convert a hexadecimal number to a decimal number.

hex_str = input("Enter a hexadecimal number: ").upper()
decimal = int(hex_str, 16)
print("Decimal equivalent:", decimal)
            

Output:

Enter a hexadecimal number: 1F
Decimal equivalent: 31

Method 3: Using Recursion

We recursively extract each digit and multiply it by the corresponding power of 16.

def hex_to_decimal_recursive(hex_str, length, index=0):
    if index == length:
        return 0
    if '0' <= hex_str[index] <= '9':
        value = ord(hex_str[index]) - ord('0')
    else:
        value = ord(hex_str[index]) - ord('A') + 10
    return value * (16 ** (length - index - 1)) + hex_to_decimal_recursive(hex_str, length, index + 1)

hex_str = input("Enter a hexadecimal number: ").upper()
print("Decimal equivalent:", hex_to_decimal_recursive(hex_str, len(hex_str)))
            

Output:

Enter a hexadecimal number: 1F
Decimal equivalent: 31
Numbers

Below You will find some of the most important codes in languages like C, C++, Java, and Python. These codes are of prime importance for college semester exams and online tests.

Getting Started

HCF - Highest Common Factor: C C++ Java Python

LCM - Lowest Common Multiple: C C++ Java Python

GCD - Greatest Common Divisor: C C++ Java Python

Binary to Decimal Conversion: C C++ Java Python

Octal to Decimal Conversion: C C++ Java Python

Hexadecimal to Decimal Conversion: C C++ Java Python

Decimal to Binary Conversion: C C++ Java Python

Decimal to Octal Conversion: C C++ Java Python

Decimal to Hexadecimal Conversion: C C++ Java Python

Binary to Octal Conversion: C C++ Java Python

Quadrants in which a given coordinate lies: C C++ Java Python

Addition of Two Fractions: C C++ Java Python

Calculate the Area of a Circle: C C++ Java Python

Convert Digit/Number to Words: C C++ Java Python

Finding Roots of a Quadratic Equation: C C++ Java Python