//program
to convert hexadecimal number into decimal .
#include <stdio.h>
#include <math.h>
#include <string.h>
void
main()
{
char
hex_number[20];
long
long
deci=0, place=1;
int
i = 0, val, len;
/*
* entering hexadecimal number from
user
*/
printf("Enter any hexadecimal number:
\n");
gets(hex_number);
/* get/find the length of total number of
hex digit (inputted as string)*/
len
= strlen(hex_number);
len--;//it decreases the
value of total length by 1 because we need one less value
//
for multiplication. and array stores value from location 0
/*
* Converts the hexadecimal number to
decimal number
* using algorithm/formula for
conversion
deci = deci + (hex_number[i] * 16 ^ power)
*/
for(i=0; hex_number[i]!='\0'; i++)
{
/*
* Finds the
decimal each equivalent hexadecimal digit
following
logic takes one character,converts into value as val and then
goes for calculation.
*/
switch(hex_number[i])
{
case
'0':
val
= 0;
break;
case
'1':
val
= 1;
break;
case
'2':
val
= 2;
break;
case
'3':
val
= 3;
break;
case
'4':
val
= 4;
break;
case
'5':
val
= 5;
break;
case
'6':
val
= 6;
break;
case
'7':
val
= 7;
break;
case
'8':
val
= 8;
break;
case
'9':
val
= 9;
break;
case
'a':
case
'A':
val
= 10;
break;
case
'b':
case
'B':
val
= 11;
break;
case
'c':
case
'C':
val
= 12;
break;
case
'd':
case
'D':
val
= 13;
break;
case
'e':
case
'E':
val
= 14;
break;
case
'f':
case
'F':
val
= 15;
break;
}
deci += val * pow(16,
len);
len--;
}
printf("\Hexadecimal number = %s\n",
hex_number);
printf("equivalent Decimal number =
%ld", deci);
}
logics in mind:
-> hexadecimal number contains characters A,B,C,D,E, and F
-> we have to
check and extract all characters one by one then we go
for multiplication with increasing or
decreasing power
->we have to go
for sum
->display that
sum