convert hexadecimal C into its decimal equivalent
Answers
#include <stdio.h><font></font>
#include <math.h><font></font>
#include <string.h><font></font>
<font></font>
#define ARRAY_SIZE 20<font></font>
<font></font>
int main()<font></font>
{<font></font>
char hex[ARRAY_SIZE];<font></font>
long long decimal = 0, base = 1;<font></font>
int i = 0, value, length;<font></font>
<font></font>
/* Get hexadecimal value from user */<font></font>
printf("Enter hexadecimal number: ");<font></font>
fflush(stdin);<font></font>
fgets(hex,ARRAY_SIZE,stdin);<font></font>
<font></font>
length = strlen(hex);<font></font>
for(i = length--; i >= 0; i--)<font></font>
{<font></font>
<font></font>
if(hex[i] >= '0' && hex[i] <= '9')<font></font>
{<font></font>
decimal += (hex[i] - 48) * base;<font></font>
base *= 16;<font></font>
}<font></font>
else if(hex[i] >= 'A' && hex[i] <= 'F')<font></font>
{<font></font>
decimal += (hex[i] - 55) * base;<font></font>
base *= 16;<font></font>
}<font></font>
else if(hex[i] >= 'a' && hex[i] <= 'f')<font></font>
{<font></font>
decimal += (hex[i] - 87) * base;<font></font>
base *= 16;<font></font>
}<font></font>
}<font></font>
<font></font>
printf("\nHexadecimal number = %s", hex);<font></font>
printf("Decimal number = %lld\n", decimal);<font></font>
<font></font>
return 0;<font></font>
}
Output:
Enter hexadecimal number: 1A<font></font>
<font></font>
Hexadecimal number = 1A<font></font>
Decimal number = 26<font></font>