C Program to Convert Hexadecimal to Binary

In this article, you will learn and get code for the conversion of a given number from hexadecimal to binary.

But before going through the program, if you are not aware of

Then, refer to the step-by-step hexadecimal to binary conversion process. Now let's move on to the program given below.

Hexadecimal to Binary in C

To convert a hexadecimal number to a binary number in C programming, you have to ask the user to enter the hexadecimal number to convert it into its equivalent binary number, as shown in the program given below. The question is: write a program in C that takes any number (in the hexadecimal system) as input and converts it into its equivalent binary value. The answer to this question is:

#include<stdio.h>
#include<conio.h>
int main()
{
    int i=0;
    char hexdec[11];
    printf("Enter Hexadecimal Number: ");
    gets(hexdec);
    printf("\nEquivalent Binary Value = ");
    while(hexdec[i])
    {
        switch(hexdec[i])
        {
            case '0':
                printf("0000");
                break;
            case '1':
                printf("0001");
                break;
            case '2':
                printf("0010");
                break;
            case '3':
                printf("0011");
                break;
            case '4':
                printf("0100");
                break;
            case '5':
                printf("0101");
                break;
            case '6':
                printf("0110");
                break;
            case '7':
                printf("0111");
                break;
            case '8':
                printf("1000");
                break;
            case '9':
                printf("1001");
                break;
            case 'A':
                printf("1010");
                break;
            case 'a':
                printf("1010");
                break;
            case 'B':
                printf("1011");
                break;
            case 'b':
                printf("1011");
                break;
            case 'C':
                printf("1100");
                break;
            case 'c':
                printf("1100");
                break;
            case 'D':
                printf("1101");
                break;
            case 'd':
                printf("1101");
                break;
            case 'E':
                printf("1110");
                break;
            case 'e':
                printf("1110");
                break;
            case 'F':
                printf("1111");
                break;
            case 'f':
                printf("1111");
                break;
            default:
                printf("--Invalid Hex Digit (%c)--", hexdec[i]);
        }
        i++;
    }
    getch();
    return 0;
}

This program was compiled and executed in the Code::Blocks IDE. Here is the sample run. This is the initial snapshot of the sample run:

c program convert hexadecimal to binary

Now supply any value (in the hexadecimal number system), say 2AD3, and press the ENTER key to see the equivalent value in the binary number system as shown in the snapshot given below:

hexadecimal to binary conversion c

Program Explained

Hexadecimal to Binary in C using the strcat() Function

Now let's create another program that uses the string function strcat() to concatenate the string. Let's have a look at the program given below:

#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
    int i=0, chk=0;
    char hexdec[11], binnum[40]="";
    printf("Enter Hexadecimal Number: ");
    gets(hexdec);
    while(hexdec[i])
    {
        switch(hexdec[i])
        {
            case '0':
                strcat(binnum, "0000");
                break;
            case '1':
                strcat(binnum, "0001");
                break;
            case '2':
                strcat(binnum, "0010");
                break;
            case '3':
                strcat(binnum, "0011");
                break;
            case '4':
                strcat(binnum, "0100");
                break;
            case '5':
                strcat(binnum, "0101");
                break;
            case '6':
                strcat(binnum, "0110");
                break;
            case '7':
                strcat(binnum, "0111");
                break;
            case '8':
                strcat(binnum, "1000");
                break;
            case '9':
                strcat(binnum, "1001");
                break;
            case 'A':
                strcat(binnum, "1010");
                break;
            case 'a':
                strcat(binnum, "1010");
                break;
            case 'B':
                strcat(binnum, "1011");
                break;
            case 'b':
                strcat(binnum, "1011");
                break;
            case 'C':
                strcat(binnum, "1100");
                break;
            case 'c':
                strcat(binnum, "1100");
                break;
            case 'D':
                strcat(binnum, "1101");
                break;
            case 'd':
                strcat(binnum, "1101");
                break;
            case 'E':
                strcat(binnum, "1110");
                break;
            case 'e':
                strcat(binnum, "1110");
                break;
            case 'F':
                strcat(binnum, "1111");
                break;
            case 'f':
                strcat(binnum, "1111");
                break;
            default:
                chk = 1;
                break;
        }
        i++;
    }
    if(chk==0)
        printf("\nEquivalent Binary Value = %s", binnum);
    else
        printf("\nInvalid Hexadecimal Character/Digit");
    getch();
    return 0;
}

Here is the first sample run when the user enters any valid hexadecimal number, say 1F. Then the output produced by the above program will look like this:

c hexadecimal to binary program

And here is another sample run, when the user enters any invalid hexadecimal digit, say 1T. Then the output produced by the above program will look like this:

hexadecimal to binary program c

Program Explained

The same program in different languages

C Quiz


« Previous Program Next Program »