C Program to Convert Hexadecimal Number to Decimal Number System

C program to convert hexadecimal number to decimal number system using for loop. Hexadecimal number system is a base 16 number system using digits 0 to 7 and A to F whereas Decimal number system is base 10 number system and using digits from 0 to 9. Given an hexadecimal number as input from user convert it to decimal number.

For Example:
12AD in Hexadecimal is equivalent to 4781 in Decimal number system.

Required Knowledge

Algorithm to convert Hexadecimal to Decimal number
  • Hexadecimal digits includes characters from A to F corresponding to 10 to 15 respectively. Hence, for hex digit form A to F we will use their decimal equivalent 10 to 15 form any calculation.
  • We multiply each digit with 16i and add them, where i is the position of the Hexadecimal digit(starting from 0) from right side. Least significant digit is at position 0.
Let's convert 12AD(hexadecimal number) to decimal number
Decimal number = 1*163 + 2*162 + 10*161 + 13*160 = 4096 + 512 + 160 + 13 = 4781

C program to convert a hexadecimal number to decimal number

#include <stdio.h>  
#include <math.h>
#include <string.h>  
  
int main() {  
    long long decimalNumber=0;
    char hexDigits[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
      '9', 'A', 'B', 'C', 'D', 'E', 'F'};
    char hexadecimal[30];  
    int i, j, power=0, digit;  
  
    printf("Enter a Hexadecimal Number\n");  
    scanf("%s", hexadecimal);  
    
    /* Converting hexadecimal number to decimal number */
    for(i=strlen(hexadecimal)-1; i >= 0; i--) {
        /*search currect character in hexDigits array */
        for(j=0; j<16; j++){
            if(hexadecimal[i] == hexDigits[j]){
                decimalNumber += j*pow(16, power);
            }
        }
        power++;
    }  
 
    printf("Decimal Number : %ld", decimalNumber);  
  
    return 0;  
}
Output
Enter a Hexadecimal Number
12AD
Decimal Number : 4781
Enter a Hexadecimal Number
2045CA
Decimal Number : 2115018

Related Topics
C program to convert binary numbers to octal number using function
C program to convert decimal numbers to binary numbers
C program to convert binary number to decimal number system
C program to convert kilometer to miles
C program to convert decimal numbers to binary numbers
C program to convert decimal number to octal number
C program to convert number of days to week, months and years
C program to convert temperature from celsius to fahrenheit
C program to make a simple calculator using switch statement
List of all C programs