# C program to convert Hexadecimal to Binary number system

Write a C program to input hexadecimal number from user and convert to binary number system. How to convert hexadecimal number system to binary number system in C program. Logic to convert hexadecimal to binary number system in C programming.

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 numbers i.e. `0123456789ABCDEF`

### Binary number system

Binary number system is a base 2 number system. It uses 2 symbols to represent all numbers i.e. `0` and `1`.

## Logic to convert Hexadecimal to Binary number system

Hexadecimal to binary conversion is divided in three steps.

1. Extract each hex digits separately.
2. Find the binary of each extracted hex digit.
3. Store the binary equivalent of extracted hexadecimal number to final bin variable.

Repeat the above three steps till all hexadecimal digits are processed.

### Hexadecimal to binary conversion table

DecimalBinaryHexadecimal
000000
100011
200102
300113
401004
501015
601106
701117
810008
910019
101010A
111011B
121100C
131101D
141110E
151111F

## Program to convert hexadecimal to binary number system

``````/**
* C program to convert Hexadecimal to binary number system
*/

#include <stdio.h>
#include <string.h>

int main()
{
char hex[17], bin[65] = "";
int i = 0;

/* Input hexadecimal number from user */
printf("Enter any hexadecimal number: ");
gets(hex);

/* Extract first digit and find binary of each hex digit */
for(i=0; hex[i]!='\0'; i++)
{
switch(hex[i])
{
case '0':
strcat(bin, "0000");
break;
case '1':
strcat(bin, "0001");
break;
case '2':
strcat(bin, "0010");
break;
case '3':
strcat(bin, "0011");
break;
case '4':
strcat(bin, "0100");
break;
case '5':
strcat(bin, "0101");
break;
case '6':
strcat(bin, "0110");
break;
case '7':
strcat(bin, "0111");
break;
case '8':
strcat(bin, "1000");
break;
case '9':
strcat(bin, "1001");
break;
case 'a':
case 'A':
strcat(bin, "1010");
break;
case 'b':
case 'B':
strcat(bin, "1011");
break;
case 'c':
case 'C':
strcat(bin, "1100");
break;
case 'd':
case 'D':
strcat(bin, "1101");
break;
case 'e':
case 'E':
strcat(bin, "1110");
break;
case 'f':
case 'F':
strcat(bin, "1111");
break;
default:
printf("Invalid hexadecimal input.");
}
}

printf("Hexademial number = %s\n", hex);
printf("Binary number = %s", bin);

return 0;
}``````

Output

```Enter any hexadecimal number: 1a
Hexademial number = 1a
Binary number = 00011010```

Happy coding ðŸ˜‰

## About Pankaj

Pankaj Prakash is the founder, editor and blogger at Codeforwin. He loves to learn new techs and write programming articles especially for beginners. He works at Vasudhaika Software Sols. as a Software Design Engineer and manages Codeforwin. In short Pankaj is Web developer, Blogger, Learner, Tech and Music lover.

Follow on: Twitter | Google | or

Have a doubt, write here. I will help my best.
Before commenting you must escape your source code before commenting. Paste your source code inside
<pre><code> ----Your Source Code---- </code></pre>