Course
Introduction
Print an Integer (Entered by the User)Add Two IntegersMultiply two Floating Point NumbersFind ASCII value of a characterCompute Quotient and RemainderSwap Two NumbersCheck Whether a Number is Even or OddFind the Frequency of Character in a StringRemove All Whitespaces from a StringRound a Number to n Decimal PlacesDecision Making and Loop
Check Whether an Alphabet is Vowel or ConsonantFind the Largest Among Three NumbersFind all Roots of a Quadratic EquationCheck Leap YearCheck Whether a Number is Positive or NegativeCheck Whether a Character is Alphabet or NotCalculate the Sum of Natural NumbersFind Factorial of a NumberGenerate Multiplication TableDisplay Fibonacci SeriesFind GCD of two NumbersFind LCM of two NumbersDisplay Characters from A to Z using loopCount Number of Digits in an IntegerReverse a NumberCalculate the Power of a NumberCheck Whether a Number is Palindrome or NotCheck Whether a Number is Prime or NotDisplay Prime Numbers Between Two IntervalsCheck Armstrong NumberDisplay Armstrong Number Between Two IntervalsDisplay Factors of a NumberMake a Simple Calculator Using switch...caseCount the Number of Vowels and Consonants in a SentenceSort Elements in Lexicographical Order (Dictionary Order)Create Pyramid and PatternFunctions
Display Prime Numbers Between Intervals Using FunctionDisplay Armstrong Numbers Between Intervals Using FunctionCheck Whether a Number can be Expressed as Sum of Two Prime NumbersFind the Sum of Natural Numbers using RecursionFind Factorial of a Number Using RecursionFind G.C.D Using RecursionConvert Binary Number to Decimal and vice-versaConvert Octal Number to Decimal and vice-versaConvert Binary Number to Octal and vice-versaReverse a Sentence Using Recursioncalculate the power using recursionArrays
Calculate Average Using ArraysFind Largest Element in an ArrayCalculate Standard DeviationAdd Two Matrix Using Multi-dimensional ArraysMultiply to Matrix Using Multi-dimensional ArraysMultiply two Matrices by Passing Matrix to a FunctionFind Transpose of a MatrixPrint an ArrayConcatenate Two ArraysConvert Character to String and Vice-VersaCheck if An Array Contains a Given ValueCollections
Join Two ListsConvert List (ArrayList) to Array and Vice-VersaConvert Map (HashMap) to ListConvert Array to Set (HashSet) and Vice-VersaSort a Map By ValuesObject and Class
Add Two Complex Numbers by Passing Class to a FunctionCalculate Difference Between Two Time PeriodsAdvanced
Convert String to DateGet Current Date/TImeConvert Milliseconds to Minutes and SecondsAdd Two DatesGet Current Working DirectoryConvert Byte Array to HexadecimalCreate String from Contents of a FileAppend Text to an Existing FileConvert a Stack Trace to a StringConvert File to byte array and Vice-VersaConvert InputStream to StringConvert OutputStream to StringLookup enum by String valueCompare StringsSort ArrayList of Custom Objects By PropertyCheck if a String is NumericC Program to Convert Binary Number to Decimal and vice-versa
To understand this example, you should have the knowledge of the following C programming topics:
Example 1: C Program to Convert Binary Number to Decimal
#include <stdio.h>
// function prototype
long long convert(long long);
int main() {
long long n;
printf("Enter a binary number: ");
scanf("%lld", &n);
printf("%lld in binary = %lld in decimal", n, convert(n));
return 0;
}
// function definition
long long convert(long long n) {
long long dec = 0;
int i = 0, rem;
while (n != 0) {
// get remainder of n divided by 10
rem = n % 10;
// add the rem * (2 ^ i) to dec
dec += rem << i; // Using bitwise shift instead of pow
// divide n by 10
n /= 10;
// increment i
++i;
}
return dec;
}
Output
Enter a binary number: 1101
1101 in binary = 13 in decimal
In the program, we have included the header file math.h
to perform mathematical operations in the program.
We ask the user to enter a binary number and pass it to the convert()
function to convert it decimal.
Suppose n = 1101
. Let’s see how the while
loop in the convert()
function works.
n != 0 | rem = n % 10 | n /= 10 | i | dec += rem * pow(2, i) |
---|---|---|---|---|
1101 != 0 | 1101 % 10 = 1 | 1101 / 10 = 110 | 0 | 0 + 1 * pow (2, 0) = 1 |
110 != 0 | 110 % 10 = 0 | 110 / 10 = 11 | 1 | 1 + 0 * pow (2, 1) = 1 |
10 != 0 | 11 % 10 = 1 | 11 /10 = 1 | 2 | 1 + 1 * pow (2, 2) = 5 |
1 != 0 | 1 % 10 = 1 | 1 / 10 = 0 | 3 | 5 + 1 * pow (2, 3) = 13 |
0 != 0 | - | - | - | Loop terminates |
So, 1101
in binary is 13
in decimal.
Now, let’s see how we can change the decimal number into a binary number.
Example 2: C Program to convert decimal number to binary
// convert decimal to binary
#include <stdio.h>
#include <math.h>
// function prototype
long long convert(int);
int main() {
int n;
long long bin;
printf("Enter a decimal number: ");
scanf("%d", &n);
// convert to binary using the convert() function
bin = convert(n);
printf("%d in decimal = %lld in binary", n, bin);
return 0;
}
// function to convert decimal to binary
long long convert(int n) {
// variable to store the result
long long bin = 0;
int rem, i = 1;
// loop to convert to binary
while (n != 0) {
// get remainder of n divided by 2
rem = n % 2;
// divide n by 2
n /= 2;
// multiply remainder by i
// add the product to bin
bin += rem * i;
// multiply i by 10
i *= 10;
}
return bin;
}
Output
Enter a decimal number: 13
13 in decimal = 1101 in binary
Suppose n = 13
. Let’s see how the while
loop in the convert()
function works.
n != 0 | rem = n % 2 | n /= 2 | i | bin += rem * i | i * = 10 |
---|---|---|---|---|---|
13 != 0 | 13 % 2 = 1 | 13 / 2 = 6 | 1 | 0 + 1 * 1 = 1 | 1 * 10 = 10 |
6 != 0 | 6 % 2 = 0 | 6 / 2 = 3 | 10 | 1 + 0 * 10 = 1 | 10 * 10 = 100 |
3 != 0 | 3 % 2 = 1 | 3 / 2 = 1 | 100 | 1 + 1 * 100 = 101 | 100 * 10 = 1000 |
1 != 0 | 1 % 2 = 1 | 1 / 2 = 0 | 1000 | 101 + 1 * 1000 = 1101 | 1000 * 10 = 10000 |
0 != 0 | - | - | - | Loop terminates |
Thus, 13
in decimal is 1101
in binary.