Write a C program to input 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 to decimal number system in C programming.

**Example**

**Input**

Input hexadecimal: 1A

**Output**

Decimal number: 26

## Required knowledge

Basic C programming, If else, For loop, String

### 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`

## Logic to convert Hexadecimal to Decimal

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

- Input a 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 number system

```
/**
* 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;
}
```

Output

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.

doubt, write here. I willhelp my best.<pre><code> ----Your Source Code---- </code></pre>