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
- 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; }
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.