Program to convert a Binary Number to Hexa-Decimal Number
Given a Binary Number, the task is to convert this Binary number to its equivalent Hexa-Decimal Number.
Examples:
Input: 100000101111
Output: 82F
Explanation:
Dividing the number into chunks of 4, it becomes 1000 0010 1111.
Here, 1000 is equivalent to 8,
0010 is equivalent to 2 and
1111 is equivalent to F
Therefore, the number becomes 82F
Input:10101101
Output:AD
Explanation:
Dividing the number into chunks of 4, it becomes 1010 1101.
Here, 1010 is equivalent to A and
1101 is equivalent to D.
Therefore, the number becomes AD.
Approach:
- Divide the given Binary number into chunks of 4, and start computing its equivalent HexaDecimal form.
- Store this number formed in a vector.
- Repeat the process for all the digits of the given Binary number.
- Print the numbers stored in the vector in reverse order.
Below is the implementation of the above approach:
C++
// C++ code to convert Binary to its // HexaDecimal number(base 16). // Including Header Files #include <bits/stdc++.h> using namespace std; // Function to convert // Binary to HexaDecimal void bToHexaDecimal(string s) { int len = s.length(), check = 0; int num = 0, sum = 0, mul = 1; vector< char > ans; // Iterating through // the bits backwards for ( int i = len - 1; i >= 0; i--) { sum += (s[i] - '0' ) * mul; mul *= 2; check++; // Computing the HexaDecimal // Number formed so far // and storing it in a vector. if (check == 4 || i == 0) { if (sum <= 9) ans.push_back(sum + '0' ); else ans.push_back(sum + 55); // Reinitializing all // variables for next group. check = 0; sum = 0; mul = 1; } } len = ans.size(); // Printing the Hexadecimal // number formed so far. for ( int i = len - 1; i >= 0; i--) cout << ans[i]; } // Driver Code int main() { string s = "100000101111" ; // Function Call bToHexaDecimal(s); return 0; } |
Java
// Java code to convert BCD to its // HexaDecimal number(base 16). // Including Header Files import java.util.*; class GFG{ // Function to convert // BCD to HexaDecimal static void bcdToHexaDecimal( char []s) { int len = s.length, check = 0 ; int num = 0 , sum = 0 , mul = 1 ; Vector<Character> ans = new Vector<Character>(); // Iterating through // the bits backwards for ( int i = len - 1 ; i >= 0 ; i--) { sum += (s[i] - '0' ) * mul; mul *= 2 ; check++; // Computing the HexaDecimal // Number formed so far // and storing it in a vector. if (check == 4 || i == 0 ) { if (sum <= 9 ) ans.add(( char ) (sum + '0' )); else ans.add(( char ) (sum + 55 )); // Reinitializing all // variables for next group. check = 0 ; sum = 0 ; mul = 1 ; } } len = ans.size(); // Printing the Hexadecimal // number formed so far. for ( int i = len - 1 ; i >= 0 ; i--) System.out.print(ans.get(i)); } // Driver Code public static void main(String[] args) { String s = "100000101111" ; // Function Call bcdToHexaDecimal(s.toCharArray()); } } // This code is contributed by Princi Singh |
Python3
# Python3 code to convert BCD to its # hexadecimal number(base 16). # Function to convert BCD to hexadecimal def bcdToHexaDecimal(s): len1 = len (s) check = 0 num = 0 sum = 0 mul = 1 ans = [] # Iterating through the bits backwards i = len1 - 1 while (i > = 0 ): sum + = ( ord (s[i]) - ord ( '0' )) * mul mul * = 2 check + = 1 # Computing the hexadecimal number formed # so far and storing it in a vector. if (check = = 4 or i = = 0 ): if ( sum < = 9 ): ans.append( chr ( sum + ord ( '0' ))) else : ans.append( chr ( sum + 55 )); # Reinitializing all variables # for next group. check = 0 sum = 0 mul = 1 i - = 1 len1 = len (ans) # Printing the hexadecimal # number formed so far. i = len1 - 1 while (i > = 0 ): print (ans[i], end = "") i - = 1 # Driver Code if __name__ = = '__main__' : s = "100000101111" # Function Call bcdToHexaDecimal(s) # This code is contributed by Samarth |
C#
// C# code to convert BCD to its // HexaDecimal number(base 16). // Including Header Files using System; using System.Collections.Generic; class GFG{ // Function to convert // BCD to HexaDecimal static void bcdToHexaDecimal( char []s) { int len = s.Length, check = 0; int num = 0, sum = 0, mul = 1; List< char > ans = new List< char >(); // Iterating through // the bits backwards for ( int i = len - 1; i >= 0; i--) { sum += (s[i] - '0' ) * mul; mul *= 2; check++; // Computing the HexaDecimal // Number formed so far // and storing it in a vector. if (check == 4 || i == 0) { if (sum <= 9) ans.Add(( char ) (sum + '0' )); else ans.Add(( char ) (sum + 55)); // Reinitializing all // variables for next group. check = 0; sum = 0; mul = 1; } } len = ans.Count; // Printing the Hexadecimal // number formed so far. for ( int i = len - 1; i >= 0; i--) Console.Write(ans[i]); } // Driver Code public static void Main(String[] args) { String s = "100000101111" ; // Function Call bcdToHexaDecimal(s.ToCharArray()); } } // This code is contributed by 29AjayKumar |
Javascript
<script> // Javascript code to convert Binary to its // HexaDecimal number(base 16). // Including Header Files // Function to convert // Binary to HexaDecimal function bToHexaDecimal(s) { let len = s.length, check = 0; let num = 0, sum = 0, mul = 1; let ans = new Array(); // Iterating through // the bits backwards for (let i = len - 1; i >= 0; i--) { sum += (s[i].charCodeAt(0) - '0' .charCodeAt(0)) * mul; mul *= 2; check++; // Computing the HexaDecimal // Number formed so far // and storing it in a vector. if (check == 4 || i == 0) { if (sum <= 9) ans.push(String.fromCharCode(sum + '0' .charCodeAt(0))); else ans.push(String.fromCharCode(sum + 55)); // Reinitializing all // variables for next group. check = 0; sum = 0; mul = 1; } } len = ans.length; // Printing the Hexadecimal // number formed so far. for (let i = len - 1; i >= 0; i--) document.write(ans[i]); } // Driver Code let s = "100000101111" ; // Function Call bToHexaDecimal(s); // This code is contributed by _saurabh_jaiswal </script> |
Output:
82F