- C Programming Examples
- C Programming Examples
- C Print Hello World
- C Get Input from User
- C Print Integer
- C Add Two Numbers
- C Add Subtract Multiply Divide
- C Add n Numbers
- C Area Perimeter of Square
- C Area Perimeter of Rectangle
- C Area Circum of Circle
- C Fahrenheit to Celsius
- C Celsius to Fahrenheit
- C Inches to Centimeters
- C Kilogram to Gram
- C Reverse a Number
- C Swap Two Numbers
- C Interchange Numbers
- C Print ASCII Value
- C Print Fibonacci Series
- C Check Palindrome or Not
- C Check Armstrong or Not
- C Find Armstrong Numbers
- C Find nCr and nPr
- C Find Profit Loss
- C Sum of their Square
- C First & Last Digit Sum
- C Sum of All Digit
- C Product of All Digit
- C Print Total Digit in Number
- C Check Perfect Number
- C Find Basic Gross Salary
- C Round Number to Integer
- C Print Series upto n Term
- C Find Factors of Number
- C if-else & Loop Programs
- C Check Even or Odd
- C Check Prime or Not
- C Check Alphabet or Not
- C Check Vowel or Not
- C Check Leap Year or Not
- C Is Reverse Equal Original
- C Make Calculator
- C Add Digits of Number
- Count Positive Negative Zero
- C Largest of Two Numbers
- C Largest of Three Numbers
- C Smallest of Two Numbers
- C Smallest of Three Numbers
- C Find Factorial of Number
- C Find LCM & HCF
- C Find LCM of n Numbers
- C Find HCF of n Numbers
- C Find Arithmetic Mean
- C Find Average, Percentage
- C Find Student Grade
- C Print Table of Number
- C Print Prime Numbers
- C Find Discount Purchase
- C Calculate Parcel Charge
- C Calculate Wage of Labor
- C Print Phone Bill
- C Conversion programs
- C Decimal to Binary
- C Decimal to Octal
- C Decimal to Hexadecimal
- C Binary to Decimal
- C Binary to Octal
- C Binary to Hexadecimal
- C Octal to Decimal
- C Octal to Binary
- C Octal to Hexadecimal
- C Hexadecimal to Decimal
- C Hexadecimal to Binary
- C Hexadecimal to Octal
- C Pattern Programs
- C Pattern Printing Programs
- C Print Diamond Pattern
- C Print Floyd's Triangle
- C Print Pascal's Triangle
- C Array Programs
- C 1D Array Programs
- C Linear Search
- C Binary Search
- C Largest Element in Array
- C Smallest Element in Array
- C Second Largest/Smallest
- C Count Even Odd
- C Array Element at Even
- C Array Element at Odd
- C Print Even Array Elements
- C Print Odd Array Elements
- C Sum/Product of Even/Odd
- C Reverse an Array
- C Insert Element in Array
- C Delete Element from Array
- C Merge Two Arrays
- C Bubble Sort
- C Selection Sort
- C Insertion Sort
- C Print Common Elements
- C 2D Array Programs
- C Add Two Matrices
- C Subtract Two Matrices
- C Transpose a Matrix
- C Multiply Two Matrices
- C Sum All Matrix Elements
- C Largest Element in Matrix
- C Print Row Column Total
- C 3D Array Programs
- C String Programs
- C Print String
- C Find Length of String
- C Compare Two String
- C Copy a String
- C Concatenate String
- C Reverse a String
- C Count Vowels Consonants
- C Replace Vowel in String
- C Delete Vowels from String
- C Delete Word from String
- C Frequency of Character
- C Count Word in String
- C Remove Spaces from String
- C Sort a String
- C Sort String in Alphabetical
- C Sort Words in Ascending
- C Sort Words in Descending
- C Uppercase to Lowercase
- C Lowercase to Uppercase
- C Swap Two Strings
- C Check Anagram or Not
- C Check Palindrome String
- C Print Number in Words
- C Print Successive Character
- C Character without Space
- C Remove Extra Spaces
- C File Programs
- C Read a File
- C Write Content to File
- C Read & Display File
- C Copy a File
- C Merge Two Files
- C Reverse File
- C Count All Character in File
- C List Files in Directory
- C Encrypt & Decrypt a File
- C Delete a File
- C Misc Programs
- Generate Random Numbers
- C Print Date Time
- C Print Message with Time
- C Get IP Address
- C Print Smiling face
- C Pass Array to Function
- Add Two Numbers using Pointer
- C Address of Variable
- C Shutdown Computer
- C Programming Tutorial
- C Tutorial
- C Programming Library
- C Standard Library
- C Programming Test
- C Programming Test
- Give Online Test
- All Test List
C Program to Convert Hexadecimal to Binary
In this article, you will learn and get code about the conversion of a given number from hexadecimal to binary.
But before going through the program, if you are not aware of
- Hexadecimal Number
- Binary Number
- Hexadecimal to Binary Conversion Process
then refer to Hexadecimal to Binary conversion step by step process. Now let's move on to the program given below.
Hexadecimal to Binary in C
To convert hexadecimal number to binary number in C programming, you have to ask from user to enter the hexadecimal number to convert it into its equivalent binary number as shown in the program given below. The question is, write a program in C, that takes any number (in hexadecimal system) as input and convert it into its equivalent binary value. The answer to this question is:
#include<stdio.h> #include<conio.h> int main() { int i=0; char hexdec[11]; printf("Enter Hexadecimal Number: "); gets(hexdec); printf("\nEquivalent Binary Value = "); 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': printf("1010"); break; case 'a': printf("1010"); break; case 'B': printf("1011"); break; case 'b': printf("1011"); break; case 'C': printf("1100"); break; case 'c': printf("1100"); break; case 'D': printf("1101"); break; case 'd': printf("1101"); break; case 'E': printf("1110"); break; case 'e': printf("1110"); break; case 'F': printf("1111"); break; case 'f': printf("1111"); break; default: printf("--Invalid Hex Digit (%c)--", hexdec[i]); } i++; } getch(); return 0; }
This program was compiled and executed in Code::Blocks IDE. Here is the sample run. This is the initial snapshot of sample run:
Now supply any value (in hexadecimal number system) say 2AD3 and press ENTER key to see equivalent value in binary number system as shown in the snapshot given below:
Program Explained
- Declares a variable say i of int type
- Initialized it with 0 as its initial value
- Declares another variable of char type say hexdec
- The maximum size of hexdec is defined as 11. That is, it can hold upto 10 characters. The last space is for null terminated character (\0)
- Now get the value of hexadecimal number from user (at run-time) using gets() function
- For example, let's suppose user enters 2AD3 as hexadecimal number. Then,
- 2 stores at hexdec[0]
- A stores at hexdec[1]
- D stores at hexdec[2]
- 3 stores at hexdec[3]
- So here we have created a while loop that runs until the last character of given hexadecimal value
- Inside the loop, we have used switch case to print binary value for each and every hexadecimal character one by one. That's it.
Hexadecimal to Binary in C using strcat() Function
Now let's create another program that uses string function, strcat() to concatenate the string. Let's have a look at the program given below:
#include<stdio.h> #include<conio.h> #include<string.h> int main() { int i=0, chk=0; char hexdec[11], binnum[40]=""; printf("Enter Hexadecimal Number: "); gets(hexdec); while(hexdec[i]) { switch(hexdec[i]) { case '0': strcat(binnum, "0000"); break; case '1': strcat(binnum, "0001"); break; case '2': strcat(binnum, "0010"); break; case '3': strcat(binnum, "0011"); break; case '4': strcat(binnum, "0100"); break; case '5': strcat(binnum, "0101"); break; case '6': strcat(binnum, "0110"); break; case '7': strcat(binnum, "0111"); break; case '8': strcat(binnum, "1000"); break; case '9': strcat(binnum, "1001"); break; case 'A': strcat(binnum, "1010"); break; case 'a': strcat(binnum, "1010"); break; case 'B': strcat(binnum, "1011"); break; case 'b': strcat(binnum, "1011"); break; case 'C': strcat(binnum, "1100"); break; case 'c': strcat(binnum, "1100"); break; case 'D': strcat(binnum, "1101"); break; case 'd': strcat(binnum, "1101"); break; case 'E': strcat(binnum, "1110"); break; case 'e': strcat(binnum, "1110"); break; case 'F': strcat(binnum, "1111"); break; case 'f': strcat(binnum, "1111"); break; default: chk = 1; break; } i++; } if(chk==0) printf("\nEquivalent Binary Value = %s", binnum); else printf("\nInvalid Hexadecimal Character/Digit"); getch(); return 0; }
Here is the first sample run when user enters any valid hexadecimal number say 1F. Then the output produced by above program will looks like:
And here is another sample run, when user enters any invalid hexadecimal digit say 1T. Then the output produced by above program will looks like:
Program Explained
- Here binary equivalent of each and every hex digit gets concatenated one by one
- And at last we have checked and printed equivalent binary value of given hexadecimal value
- Here we have checked whether the value of chk contains its original value or not
- If it contains its original value, that is 0, then the default statement of switch case never runs
- It means that no any invalid hexadecimal character was entered by user
- And if chk does not holds its original value after exiting from the while loop, then it means, the default statement gets executed at once
- So an invalid hexadecimal character was entered by user
- Therefore program prints a message as Invalid Hexadecimal Character/Digit as output
Same Program in Other Languages
« Previous Program Next Program »