Related Articles
Program to Convert Hexadecimal Number to Binary
• Last Updated : 07 Nov, 2020

Given a Hexadecimal number as an input, the task is to convert that number to a Binary number.
Examples:

```Input: Hexadecimal = 1AC5
Output: Binary = 0001101011000101
Explanation:
Equivalent binary value of 1: 0001
Equivalent binary value of A: 1010
Equivalent binary value of C: 1100
Equivalent binary value of 5: 0101

Output: Binary = 0101110100011111

```

Approach: A hexadecimal number is a positional numeral system with a radix, or base, of 16 and uses sixteen distinct symbols.
A binary number is a number expressed in the base-2 binary numeral system, which uses only two symbols: which are 0 (zero) and 1 (one).

To convert HexaDecimal number to Binary, the binary equivalent of each digit of the HexaDecimal number is evaluated and combined at the end to get the equivalent binary number.

Below is the implementation of the above approach:

## C++

 `// C++ program to convert``// Hexadecimal number to Binary` `#include ``using` `namespace` `std;` `// function to convert``// Hexadecimal to Binary Number``void` `HexToBin(string hexdec)``{``    ``long` `int` `i = 0;` `    ``while` `(hexdec[i]) {` `        ``switch` `(hexdec[i]) {``        ``case` `'0'``:``            ``cout << ``"0000"``;``            ``break``;``        ``case` `'1'``:``            ``cout << ``"0001"``;``            ``break``;``        ``case` `'2'``:``            ``cout << ``"0010"``;``            ``break``;``        ``case` `'3'``:``            ``cout << ``"0011"``;``            ``break``;``        ``case` `'4'``:``            ``cout << ``"0100"``;``            ``break``;``        ``case` `'5'``:``            ``cout << ``"0101"``;``            ``break``;``        ``case` `'6'``:``            ``cout << ``"0110"``;``            ``break``;``        ``case` `'7'``:``            ``cout << ``"0111"``;``            ``break``;``        ``case` `'8'``:``            ``cout << ``"1000"``;``            ``break``;``        ``case` `'9'``:``            ``cout << ``"1001"``;``            ``break``;``        ``case` `'A'``:``        ``case` `'a'``:``            ``cout << ``"1010"``;``            ``break``;``        ``case` `'B'``:``        ``case` `'b'``:``            ``cout << ``"1011"``;``            ``break``;``        ``case` `'C'``:``        ``case` `'c'``:``            ``cout << ``"1100"``;``            ``break``;``        ``case` `'D'``:``        ``case` `'d'``:``            ``cout << ``"1101"``;``            ``break``;``        ``case` `'E'``:``        ``case` `'e'``:``            ``cout << ``"1110"``;``            ``break``;``        ``case` `'F'``:``        ``case` `'f'``:``            ``cout << ``"1111"``;``            ``break``;``        ``default``:``            ``cout << ``"\nInvalid hexadecimal digit "``                 ``<< hexdec[i];``        ``}``        ``i++;``    ``}``}` `// driver code``int` `main()``{` `    ``// Get the Hexadecimal number``    ``char` `hexdec[100] = ``"1AC5"``;` `    ``// Convert HexaDecimal to Binary``    ``cout << ``"\nEquivalent Binary value is : "``;``    ``HexToBin(hexdec);` `    ``return` `0;``}`

## C

 `// C program to convert``// Hexadecimal number to Binary` `#include ` `// function to convert Hexadecimal to Binary Number``void` `HexToBin(``char``* hexdec)``{` `    ``long` `int` `i = 0;` `    ``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'``:``        ``case` `'a'``:``            ``printf``(``"1010"``);``            ``break``;``        ``case` `'B'``:``        ``case` `'b'``:``            ``printf``(``"1011"``);``            ``break``;``        ``case` `'C'``:``        ``case` `'c'``:``            ``printf``(``"1100"``);``            ``break``;``        ``case` `'D'``:``        ``case` `'d'``:``            ``printf``(``"1101"``);``            ``break``;``        ``case` `'E'``:``        ``case` `'e'``:``            ``printf``(``"1110"``);``            ``break``;``        ``case` `'F'``:``        ``case` `'f'``:``            ``printf``(``"1111"``);``            ``break``;``        ``default``:``            ``printf``(``"\nInvalid hexadecimal digit %c"``,``                   ``hexdec[i]);``        ``}``        ``i++;``    ``}``}` `// driver code``int` `main()``{` `    ``// Get the Hexadecimal number``    ``char` `hexdec[100] = ``"1AC5"``;` `    ``// Convert HexaDecimal to Binary``    ``printf``(``"\nEquivalent Binary value is : "``);``    ``HexToBin(hexdec);``}`

## Java

 `// Java program to convert``// Hexadecimal number to Binary` `public` `class` `Improve {` `    ``// function to convert``    ``// Hexadecimal to Binary Number``    ``static` `void` `HexToBin(``char` `hexdec[])``    ``{``        ``int` `i = ``0``;` `        ``while` `(hexdec[i] != ``'\u0000'``) {` `            ``switch` `(hexdec[i]) {``            ``case` `'0'``:``                ``System.out.print(``"0000"``);``                ``break``;``            ``case` `'1'``:``                ``System.out.print(``"0001"``);``                ``break``;``            ``case` `'2'``:``                ``System.out.print(``"0010"``);``                ``break``;``            ``case` `'3'``:``                ``System.out.print(``"0011"``);``                ``break``;``            ``case` `'4'``:``                ``System.out.print(``"0100"``);``                ``break``;``            ``case` `'5'``:``                ``System.out.print(``"0101"``);``                ``break``;``            ``case` `'6'``:``                ``System.out.print(``"0110"``);``                ``break``;``            ``case` `'7'``:``                ``System.out.print(``"0111"``);``                ``break``;``            ``case` `'8'``:``                ``System.out.print(``"1000"``);``                ``break``;``            ``case` `'9'``:``                ``System.out.print(``"1001"``);``                ``break``;``            ``case` `'A'``:``            ``case` `'a'``:``                ``System.out.print(``"1010"``);``                ``break``;``            ``case` `'B'``:``            ``case` `'b'``:``                ``System.out.print(``"1011"``);``                ``break``;``            ``case` `'C'``:``            ``case` `'c'``:``                ``System.out.print(``"1100"``);``                ``break``;``            ``case` `'D'``:``            ``case` `'d'``:``                ``System.out.print(``"1101"``);``                ``break``;``            ``case` `'E'``:``            ``case` `'e'``:``                ``System.out.print(``"1110"``);``                ``break``;``            ``case` `'F'``:``            ``case` `'f'``:``                ``System.out.print(``"1111"``);``                ``break``;``            ``default``:``                ``System.out.print(``"\nInvalid hexadecimal digit "` `+ hexdec[i]);``            ``}``            ``i++;``        ``}``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String args[])``    ``{``        ``// Get the Hexadecimal number``        ``String s = ``"1AC5"` `;``        ``char` `hexdec[] = ``new` `char``[``100``] ;``            ``hexdec = s.toCharArray() ;` `        ``// Convert HexaDecimal to Binary``        ``System.out.print(``"\nEquivalent Binary value is : "``);``        ``try``{``            ``HexToBin(hexdec);``        ``}``        ``catch` `(ArrayIndexOutOfBoundsException e){``            ``System.out.print(``""``);``        ``}` `    ``}``    ``// This code is contributed by ANKITRAI1``}`

## Python3

 `# Python3 program to convert``# Hexadecimal number to Binary` `# Function to convert``# Hexadecimal to Binary Number``def` `HexToBin(hexdec):`` ` `    ``for` `i ``in` `hexdec:       ``        ``if` `i ``=``=` `'0'``:``            ``print``(``'0000'``, end ``=` `'')``        ``elif` `i ``=``=` `'1'``:``            ``print``(``'0001'``, end ``=` `'')``        ``elif` `i ``=``=` `'2'``:``            ``print``(``'0010'``, end ``=` `'')``        ``elif` `i ``=``=` `'3'``:``            ``print``(``'0011'``, end ``=` `'')``        ``elif` `i ``=``=` `'4'``:``            ``print``(``'0100'``, end ``=` `'')``        ``elif` `i ``=``=` `'5'``:``            ``print``(``'0101'``, end ``=` `'')``        ``elif` `i ``=``=` `'6'``:``            ``print``(``'0110'``, end ``=` `'')``        ``elif` `i ``=``=` `'7'``:``            ``print``(``'0111'``, end ``=` `'')``        ``elif` `i ``=``=` `'8'``:``            ``print``(``'1000'``, end ``=` `'')``        ``elif` `i ``=``=` `'9'``:``            ``print``(``'1001'``, end ``=` `'')``        ``elif` `i ``=``=` `'A'` `or` `i ``=``=` `'a'``:``            ``print``(``'1010'``, end ``=` `'')``        ``elif` `i ``=``=` `'B'` `or` `i ``=``=` `'b'``:``            ``print``(``'1011'``, end ``=` `'')``        ``elif` `i ``=``=` `'C'` `or` `i ``=``=` `'c'``:``            ``print``(``'1100'``, end ``=` `'')``        ``elif` `i ``=``=` `'D'` `or` `i ``=``=` `'d'``:``            ``print``(``'1101'``, end ``=` `'')``        ``elif` `i ``=``=` `'E'` `or` `i ``=``=` `'e'``:``            ``print``(``'1110'``, end ``=` `'')``        ``elif` `i ``=``=` `'F'` `or` `i ``=``=` `'f'``:``            ``print``(``'1111'``, end ``=` `'')``        ``else``:``            ``print``(``"\nInvalid hexadecimal digit "` `+``                    ``str``(hexdec[i]), end ``=` `'')``            ` `# Driver code``if` `__name__``=``=``"__main__"``:``    ` `    ``# Get the Hexadecimal number``    ``hexdec``=` `"1AC5"``;`` ` `    ``# Convert HexaDecimal to Binary``    ``print``(``"Equivalent Binary value is : "``,``           ``end ``=` `'')``    ``HexToBin(hexdec)``    ` `# This code is contributed by Rutvik_56`

## C#

 `// C# program to convert Hexadecimal``// number to Binary` `class` `GFG``{` `// function to convert``// Hexadecimal to Binary Number``static` `void` `HexToBin(``char``[] hexdec)``{``int` `i = 0;` `while` `(hexdec[i] != ``'\u0000'``)``{` `    ``switch` `(hexdec[i])``    ``{``    ``case` `'0'``:``        ``System.Console.Write(``"0000"``);``        ``break``;``    ``case` `'1'``:``        ``System.Console.Write(``"0001"``);``        ``break``;``    ``case` `'2'``:``        ``System.Console.Write(``"0010"``);``        ``break``;``    ``case` `'3'``:``        ``System.Console.Write(``"0011"``);``        ``break``;``    ``case` `'4'``:``        ``System.Console.Write(``"0100"``);``        ``break``;``    ``case` `'5'``:``        ``System.Console.Write(``"0101"``);``        ``break``;``    ``case` `'6'``:``        ``System.Console.Write(``"0110"``);``        ``break``;``    ``case` `'7'``:``        ``System.Console.Write(``"0111"``);``        ``break``;``    ``case` `'8'``:``        ``System.Console.Write(``"1000"``);``        ``break``;``    ``case` `'9'``:``        ``System.Console.Write(``"1001"``);``        ``break``;``    ``case` `'A'``:``    ``case` `'a'``:``        ``System.Console.Write(``"1010"``);``        ``break``;``    ``case` `'B'``:``    ``case` `'b'``:``        ``System.Console.Write(``"1011"``);``        ``break``;``    ``case` `'C'``:``    ``case` `'c'``:``        ``System.Console.Write(``"1100"``);``        ``break``;``    ``case` `'D'``:``    ``case` `'d'``:``        ``System.Console.Write(``"1101"``);``        ``break``;``    ``case` `'E'``:``    ``case` `'e'``:``        ``System.Console.Write(``"1110"``);``        ``break``;``    ``case` `'F'``:``    ``case` `'f'``:``        ``System.Console.Write(``"1111"``);``        ``break``;``    ``default``:``        ``System.Console.Write(``"\nInvalid hexadecimal digit "` `+``                                                  ``hexdec[i]);``        ``break``;``    ``}``    ``i++;``}``}` `// Driver code``static` `void` `Main()``{``    ``// Get the Hexadecimal number``    ``string` `s = ``"1AC5"` `;``    ``char``[] hexdec = ``new` `char``[100];``           ``hexdec = s.ToCharArray();` `    ``// Convert HexaDecimal to Binary``    ``System.Console.Write(``"Equivalent Binary value is : "``);``    ``try``    ``{``        ``HexToBin(hexdec);``    ``}``    ``catch` `(System.IndexOutOfRangeException)``    ``{``        ``System.Console.Write(``""``);``    ``}``}``}` `// This code is contributed by mits`

## PHP

 `
Output:
```Equivalent Binary value is : 0001101011000101

```

Alternate Approach :

## Python

 `# Python3 program to convert``# Hexadecimal number to Binary` `def` `to4DigitBin(value):` `    ``# Converts given binary value into 4-digit``    ``# Binary representation.``    ``# If given value is '10', it returns '0010'``    ``# i.e. 2 times '0' + '10'='00'+'10'``    ``return` `'0'``*``(``4``-``len``(value))``+``value`` ` `def` `HexadecimalToBinary(inputHexadecimal):``    ``resultBinary ``=` `'' ``# Initialize Empty string`` ` `    ``for` `eachElement ``in` `inputHexadecimal:` `        ``# If it's a number digit (in 0 to 9), find it's binary form.``        ``if``(eachElement.isdigit()):` `            ``# Here bin(number) function returns Binary``            ``# representation of number``            ``# Ex: bin(10) returns '0b1010', so slice away``            ``# the first 2 characters to get '1010'``            ``binaryOfSingleDigit ``=` `bin``(``int``(eachElement))[``2``:]`` ` `            ``# Now add the 4-digit Binary representation to``            ``# result string``            ``resultBinary ``+``=` `to4DigitBin(binaryOfSingleDigit)` `        ``# Since the element is alphabet (in A to E), (assuming``        ``# only capital letters)``        ``# 'ord(element)-65+10' gives the number representation``        ``# ranging 10 to 16 (for A to E)``        ``# Ex: For 'B', ord('B')=66, thus 'ord('B')-65+10' => '``        ``# 66-65+10' => '11'``        ``elif``(eachElement.isalpha() ``and` `ord``(eachElement) < ``71``):``            ``resultBinary ``+``=` `to4DigitBin(``bin``(``ord``(eachElement)``-``55``)[``2``:])` `        ``# If invalid character is present ``        ``else``:           ``            ``resultBinary ``=` `'Invalid hexadecimal digit: '` `+` `eachElement``            ``break`` ` `    ``return` `'Equivalent Binary value is: '``+` `resultBinary`` ` `# Driver code``inputHexadecimal ``=` `'1AC5'`   `# input('Enter Hexadecimal: ')``print``(HexadecimalToBinary(inputHexadecimal))`` ` `# This code is contributed by SBVKrishna`

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up