Write a C program to read hexadecimal number from user and convert it to Decimal number system. How to convert from Hexadecimal number system to Decimal number system in C programming. Logic to convert hexadecimal number to decimal number system in C program.

**Example**

**Input**

Input hexadecimal: 1A

**Output**

Decimal number: 26

## Required knowledge

## Hexadecimal number system

Hexadecimal number system is a base 16 number system. It uses 16 symbols to represent all number i.e. 0123456789ABCDEF

## Decimal number system

Decimal number system is a base 10 number system. It uses 10 symbols to represent all numbers i.e. 0123456789

## Algorithm to convert Hexadecimal to Decimal

Step by step descriptive logic to convert hexadecimal to decimal number system.

- Read any hexadecimal number from user. Store it in some variable hex.
- Initialize decimal = 0, digit = length_of_hexadecimal_digit - 1 and i = 0.
- Run a loop for each hex digit. Which is the loop structure should look like for(i=0; hex[i]!='\0'; i++).
- Inside the loop find the integer value of hex[i]. Store it in some variable say val.
- Convert the hex to decimal using decimal = decimal + (val * 16 ^ digit). Where val = hex[i].

## Program to convert hexadecimal to decimal

/** * C program to convert Hexadecimal to Decimal number system */ #include <stdio.h> #include <math.h> #include <string.h> int main() { char hex[17]; long long decimal, place; int i = 0, val, len; decimal = 0; place = 1; /* * Input hexadecimal number from user */ printf("Enter any hexadecimal number: "); gets(hex); /* Find the length of total number of hex digit */ len = strlen(hex); len--; /* * Iterate over each hex digit */ for(i=0; hex[i]!='\0'; i++) { /* * Find the decimal representation of hex[i] */ if(hex[i]>='0' && hex[i]<='9') { val = hex[i] - 48; } else if(hex[i]>='a' && hex[i]<='f') { val = hex[i] - 97 + 10; } else if(hex[i]>='A' && hex[i]<='F') { val = hex[i] - 65 + 10; } decimal += val * pow(16, len); len--; } printf("Hexadecimal number = %s\n", hex); printf("Decimal number = %lld", decimal); return 0; }

Enter any hexadecimal number: 1a Hexadecimal number = 1a Decimal number = 26

Happy coding ;)

### Recommended posts

- Loop programming exercises and solutions in C.
- C program to convert Decimal to Hexadecimal number system.
- C program to convert Hexadecimal to Binary number system.
- C program to convert Hexadecimal to Octal number system.
- C program to convert Binary to Decimal number system.
- C program to convert Octal to Decimal number system.

< pre>< code >----Your Source Code---- < / code > < / pre > (Remove spaces from pre and code tags)