Loop Exercises
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.
Required knowledge
Basic C programming, Switch case, For loop, Array
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.
- Extract each hex digits separately.
- Find the binary of each extracted hex digit.
- 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
Decimal | Binary | Hexadecimal |
---|---|---|
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | A |
11 | 1011 | B |
12 | 1100 | C |
13 | 1101 | D |
14 | 1110 | E |
15 | 1111 | F |
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: 31r
Hexademial number = 31r
Binary number = 00110001