codescracker
c

C Program to Convert Hexadecimal to Binary



« Previous Program Next Program »

In this article, you will learn and get code about 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 Hexadecimal to Binary conversion step by step process. Now let's move on to the program given below.

Hexadecimal to Binary in C

To convert hexadecimal number to binary number in C programming, you have to ask from 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 hexadecimal system) as input and convert it into its equivalent binary value. The answer to this question is:

// Hexadecimal to Binary Conversion in C
// -----codescracker.com------

#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 Code::Blocks IDE. Here is the sample run. This is the initial snapshot of sample run:

c program convert hexadecimal to binary

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

hexadecimal to binary conversion c

Program Explained

using strcat() Function

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

// Hexadecimal to Binary Conversion Program in C
// -----codescracker.com------

#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 user enters any valid hexadecimal number say 1F. Then the output produced by above program will looks like:

c hexadecimal to binary program

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

hexadecimal to binary program c

Program Explained

Same Program in Other Languages


« Previous Program Next Program »