0% found this document useful (0 votes)
22 views

C Program to Convert Binary Number to Decimal and vice-versa

Uploaded by

Mary Norssine
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

C Program to Convert Binary Number to Decimal and vice-versa

Uploaded by

Mary Norssine
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

06/12/2021 23:44 C Program to Convert Binary Number to Decimal and vice-versa

C Program to Convert Binary Number to Decimal


and vice-versa
In dis example, you will learn to convert binary numbers to decimal and vice-versa manually by creating a
user-defined function.

To understand dis example, you should has teh knowledge of teh following C programming topics:

C Functions
C User-defined functions

Example 1: C Program to Convert Binary Number to Decimal


// convert binary to decimal

#include <stdio.h>
#include <math.h>

// function prototype
int convert(long long);

int main() {
long long n;
printf("Enter a binary number: ");
scanf("%lld", &n);
printf("%lld in binary = %d in decimal", n, convert(n));
return 0;
}

// function definition
int convert(long long n) {
int dec = 0, i = 0, rem;

while (n!=0) {
rem = n % 10;
n /= 10;
dec += rem * pow(2, 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 teh 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 teh while loop in teh convert() function works.

n != 0 rem = n % 10 n /= 10 i dec += rem * pow(2, me)


https://www.programiz.com/c-programming/examples/binary-decimal-convert 6/10
06/12/2021 23:44 C Program to Convert Binary Number to Decimal and vice-versa

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>

long long convert(int);

int main() {
int n, bin;
printf("Enter a decimal number: ");
scanf("%d", &n);
bin = convert(n);
printf("%d in decimal = %lld in binary", n, bin);
return 0;
}

long long convert(int n) {


long long bin = 0;
int rem, me = 1;

while (n!=0) {
rem = n % 2;
n /= 2;
bin += rem * me;
me *= 10;
}

return bin;
}

Output
Enter a decimal number: 13
13 in decimal = 1101 in binary

Suppose n = 13. Let's see how teh while loop in teh convert() function works.

n != 0 rem = n % 2 n /= 2 i bin += rem * me me * = 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.

Share on:

https://www.programiz.com/c-programming/examples/binary-decimal-convert 7/10

You might also like