Related Articles

# Program to convert Hexa-Decimal Number to its equivalent BCD

• Last Updated : 14 Dec, 2020

Given a HexaDecimal Number N, the task is to convert the number to its equivalent Binary Coded Decimal.
Examples:

Input: 11F
Output: 0001 0001 1111
Explanation:
Binary of 1 – 0001
Binary of F – 1111
Thus, Equivalent BCD is 0001 0001 1111
Input: A D
Output: 1010 1101
Explanation:
Binary of A – 1010
Binary of D – 1101
Thus, Equivalent BCD is 1010 1101

Approach: The idea is to iterate over each digit of the given Hexa-Decimal number and find the four digit Binary Equivalent of that digit. Finally, print all the converted digits one by one.
Below is the implementation of the above approach:

## C++

 `// C++ implementation  to convert the given``// HexaDecimal number to its equivalent BCD.` `#include ``using` `namespace` `std;` `// Function to convert``// HexaDecimal to its BCD``void` `HexaDecimaltoBCD(string s)``{``    ``int` `len = s.length(), check = 0;``    ``int` `num = 0, sum = 0, mul = 1;` `    ``// Iterating through the digits``    ``for` `(``int` `i = 0; i <= len - 1; i++) {` `        ``// check whether s[i] is a character``        ``// or a integer between 0 to 9``        ``// and compute its equivalent BCD``        ``if` `(s[i] >= 47 && s[i] <= 52)``            ``cout << bitset<4>(s[i])``                 ``<< ``" "``;``        ``else``            ``cout << bitset<4>(s[i] - 55)``                 ``<< ``" "``;``    ``}``}` `// Driver Code``int` `main()``{``    ``string s = ``"11F"``;` `    ``// Function Call``    ``HexaDecimaltoBCD(s);` `    ``return` `0;``}`

## Java

 `// Java implementation  to convert the given``// HexaDecimal number to its equivalent BCD.``public` `class` `Main``{``    ``// Function to convert``    ``// HexaDecimal to its BCD``    ``public` `static` `void` `HexaDecimaltoBCD(String s)``    ``{``        ``int` `len = s.length(), check = ``0``;``        ``int` `num = ``0``, sum = ``0``, mul = ``1``;``      ` `        ``// Iterating through the digits``        ``for` `(``int` `i = ``0``; i <= len - ``1``; i++) {``      ` `            ``// check whether s[i] is a character``            ``// or a integer between 0 to 9``            ``// and compute its equivalent BCD``            ``if` `(s.charAt(i) >= ``47` `&& s.charAt(i) <= ``52``)``            ``{``                ``String result = Integer.toBinaryString((``int``)s.charAt(i));``                ``System.out.print(result.substring(result.length() - ``4``) + ``" "``);``            ``}``            ``else``            ``{``                ``String result = Integer.toBinaryString((``int``)s.charAt(i) - ``55``);``                ``System.out.print(result.substring(result.length() - ``4``) + ``" "``);``            ``}``        ``}``    ``}` `    ``public` `static` `void` `main(String[] args) {``        ``String s = ``"11F"``;``  ` `        ``// Function Call``        ``HexaDecimaltoBCD(s);``    ``}``}` `// This code is contributed by divyesh072019`

## Python3

 `# Python3 program to convert the given``# HexaDecimal number to its equivalent BCD` `# Function to convert``# Haxadecimal to BCD``def` `HexaDecimaltoBCD(``str``):` `    ``# Iterating through the digits``    ``for` `i ``in` `range``(``len``(``str``)):``        ` `        ``# Conversion into equivalent BCD``        ``print``(``"{0:04b}"``.``format``(``              ``int``(``str``[i], ``16``)), end ``=` `" "``)` `# Driver code``str` `=` `"11F"` `# Function call``HexaDecimaltoBCD(``str``)` `# This code is contributed by himanshu77`

## C#

 `// C# implementation  to convert the given``// HexaDecimal number to its equivalent BCD.``using` `System;``class` `GFG {``    ` `    ``// Function to convert``    ``// HexaDecimal to its BCD``    ``static` `void` `HexaDecimaltoBCD(``string` `s)``    ``{``        ``int` `len = s.Length;``       ` `        ``// Iterating through the digits``        ``for` `(``int` `i = 0; i <= len - 1; i++) {``       ` `            ``// check whether s[i] is a character``            ``// or a integer between 0 to 9``            ``// and compute its equivalent BCD``            ``if` `(s[i] >= 47 && s[i] <= 52)``            ``{``                ``string` `result = Convert.ToString((``int``)s[i], 2);``                ``Console.Write(result.Substring(result.Length - 4) + ``" "``);``            ``}``            ``else``            ``{``                ``string` `result = Convert.ToString((``int``)s[i] - 55, 2);``                ``Console.Write(result.Substring(result.Length - 4) + ``" "``);``            ``}``        ``}``    ``}``    ` `  ``static` `void` `Main() {``        ``string` `s = ``"11F"``;``   ` `        ``// Function Call``        ``HexaDecimaltoBCD(s);``  ``}``}` `// This code is contributed by diyeshrabadiya07`
Output:
`0001 0001 1111`

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up