How to Convert Hexadecimal to Binary in C
Program to Convert Hexadecimal Number to Binary
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 Input: Hexadecimal = 5D1F 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).
Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the Demo Class for First Step to Coding Course,specificallydesigned for students of class 8 to 12.
The students will get to learn more about the world of programming in thesefree classes which will definitely help them in making a wise career choice in the future.
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++
#include <bits/stdc++.h>
using namespace std;
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++;
}
}
int main()
{
char hexdec[100] = "1AC5" ;
cout << "\nEquivalent Binary value is : " ;
HexToBin(hexdec);
return 0;
}
C
#include <stdio.h>
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++;
}
}
int main()
{
char hexdec[100] = "1AC5" ;
printf ( "\nEquivalent Binary value is : " );
HexToBin(hexdec);
}
Java
public class Improve {
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++;
}
}
public static void main(String args[])
{
String s = "1AC5" ;
char hexdec[] = new char [ 100 ] ;
hexdec = s.toCharArray() ;
System.out.print( "\nEquivalent Binary value is : " );
try {
HexToBin(hexdec);
}
catch (ArrayIndexOutOfBoundsException e){
System.out.print( "" );
}
}
}
Python3
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 = '')
if __name__ = = "__main__" :
hexdec = "1AC5" ;
print ( "Equivalent Binary value is : " ,
end = '')
HexToBin(hexdec)
C#
class GFG
{
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++;
}
}
static void Main()
{
string s = "1AC5" ;
char [] hexdec = new char [100];
hexdec = s.ToCharArray();
System.Console.Write( "Equivalent Binary value is : " );
try
{
HexToBin(hexdec);
}
catch (System.IndexOutOfRangeException)
{
System.Console.Write( "" );
}
}
}
PHP
<?php
function HexToBin( $hexdec )
{
$i = 0;
while ( $hexdec [ $i ])
{
switch ( $hexdec [ $i ])
{
case '0' :
echo "0000" ;
break ;
case '1' :
echo "0001" ;
break ;
case '2' :
echo "0010" ;
break ;
case '3' :
echo "0011" ;
break ;
case '4' :
echo "0100" ;
break ;
case '5' :
echo "0101" ;
break ;
case '6' :
echo "0110" ;
break ;
case '7' :
echo "0111" ;
break ;
case '8' :
echo "1000" ;
break ;
case '9' :
echo "1001" ;
break ;
case 'A' :
case 'a' :
echo "1010" ;
break ;
case 'B' :
case 'b' :
echo "1011" ;
break ;
case 'C' :
case 'c' :
echo "1100" ;
break ;
case 'D' :
case 'd' :
echo "1101" ;
break ;
case 'E' :
case 'e' :
echo "1110" ;
break ;
case 'F' :
case 'f' :
echo "1111" ;
break ;
default :
echo "\nInvalid hexadecimal digit " .
$hexdec [ $i ];
}
$i ++;
}
}
$hexdec = "1AC5" ;
echo "\nEquivalent Binary value is : " ;
HexToBin( $hexdec );
Output:
Equivalent Binary value is : 0001101011000101
Alternate Approach :
Python
def to4DigitBin(value):
return '0' * ( 4 - len (value)) + value
def HexadecimalToBinary(inputHexadecimal):
resultBinary = ''
for eachElement in inputHexadecimal:
if (eachElement.isdigit()):
binaryOfSingleDigit = bin ( int (eachElement))[ 2 :]
resultBinary + = to4DigitBin(binaryOfSingleDigit)
elif (eachElement.isalpha() and ord (eachElement) < 71 ):
resultBinary + = to4DigitBin( bin ( ord (eachElement) - 55 )[ 2 :])
else :
resultBinary = 'Invalid hexadecimal digit: ' + eachElement
break
return 'Equivalent Binary value is: ' + resultBinary
inputHexadecimal = '1AC5'
print (HexadecimalToBinary(inputHexadecimal))
Java
import java.io.*;
class HexToBinary {
public static void main(String[] args)
{
String s = "1AC5" ;
String result = hexToBinary(s);
System.out.println(result);
}
private static String hexToBinary(String input)
{
int decimalValue = Integer.parseInt(input, 16 );
String result
= Integer.toBinaryString(decimalValue);
return result;
}
}
Output
Equivalent Binary value is: 0001101011000101
How to Convert Hexadecimal to Binary in C
Source: https://www.geeksforgeeks.org/program-to-convert-hexadecimal-number-to-binary/