Here is a C program to convert hexadecimal number to binary number system.

#### Required Knowledge

**Hexadecimal number system** is a base 16 number system using digits 0 to 9 and A to F, whereas **Binary number system** is base 2 and using digits 0 and 1. Given an hexadecimal number as input from user convert it to binary number.

##### For Example

123A in**Hexadecimal**is equivalent to 0001001000111010 in

**Binary**number system.

**Algorithm to convert Hexadecimal to Binary number**

- Create a mapping between hexadecimal digits and binary sequence.
- Now, replace each hexadecimal digit with it's corresponding binary sequence as mentioned in below program.

## C program to convert a hexadecimal number to binary number

#include <stdio.h> #include <string.h> int main() { char *hexDigitToBinary[16] = {"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"}; char hexDigits[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; char hexadecimal[30], binaryNumber[100]; int i = 0, j, index=0; /* * Take a hexadecimal number as input from user */ printf("Enter a Hexadecimal Number\n"); scanf("%s", hexadecimal); /* * Find he hexadecimal digit in hexDigits and the substitute it * with corresponding value in hexDigitToBinary */ for(i=0; hexadecimal[i] != '\0'; i++) { for(j = 0; j < 16; j++){ if(hexadecimal[i] == hexDigits[j]){ strcat(binaryNumber, hexDigitToBinary[j]); } } } printf("Binary Number : %s", binaryNumber); return 0; }Output

Enter a Hexadecimal Number 123A Binary Number : 0001001000111010

Enter a Hexadecimal Number 11CD Binary Number : 0001000111001101

**Related Topics**