WAP to convert Hexadecimal to Decimal number system

C program to convert Hexadecimal to Decimal number system


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

Program to convert hexadecimal to decimal

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/**
 * 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


Comments

  1. Lucky Club Casino Site
    Lucky Club Casino is operated by the same people as Vegas Hotel & Casino in Las Vegas. They're not affiliated with any casinos,  Rating: 5 · ‎Review by LuckyClub.com luckyclub

    ReplyDelete

Post a Comment

Most Viewed

Write C program to enter any year and check whether year is leap year or not using conditional/ternary operator.

WAP to input week number and print week day name.

C Program to Find Third Angle of a Triangle