Write a c program to convert binary number to decimal number






C code for binary to decimal conversion:



#include<stdio.h>

int main(){
   
    long int binaryNumber,decimalNumber=0,j=1,remainder;

    printf("Enter any number any binary number: ");
    scanf("%ld",&binaryNumber);

    while(binaryNumber!=0){
         remainder=binaryNumber%10;
        decimalNumber=decimalNumber+remainder*j;
        j=j*2;
        binaryNumber=binaryNumber/10;
    }

    printf("Equivalent decimal value: %ld",decimalNumber);

    return 0;
}

Sample output:

Enter any number any binary number: 1101
Equivalent decimal value: 13


Algorithm:

Binary number system: It is base 2 number system which uses the digits from 0 and 1.

Decimal number system:
It is base 10 number system which uses the digits from 0 to 9


Convert from binary to decimal algorithm:



For this we multiply each digit separately from right side by 1, 2, 4, 8, 16 … respectively then add them.



Binary number to decimal conversion with example:

For example we want to convert binary number 101111 to decimal:
Step1:  1 * 1 = 1
Step2:  1 * 2 = 2
Step3:  1 * 4 = 4
Step4:  1 * 8 = 8
Step5:  0 * 16 = 0
Step6:  1 * 32 = 32

Its decimal value: 1 + 2 + 4+ 8+ 0+ 32 = 47

That is (101111)2 = (47)10






6. Write a c program to convert octal number to hexadecimal number.
8. Write a c program to convert hexadecimal number to octal number.
9. Write a c program to convert hexadecimal number to decimal number.
10. Write a c program to convert binary number to octal number.

19 comments:

Anonymous said...

ok now the question is , what if I post 123 , or 2985 , in base of 2. Eventually, This isn't binary (base of 2 , combination os 1s and 0s). what code to use to make the program know its not a binary code ?

sridhar M N said...

I can't understand this program please explain with step

Bharat Lohakare said...

A very simple and easy steps to understand please keep on posting such new concept. Also try to explain single example with different types of logic if available.

Anonymous said...

what does the "j" stand for?

Bharvi Dixit said...

j is used as "base"
initially it is 1.
After first iteration it will be 1*2=2
After second iteration it will be 2*2=4 and so on..

Anonymous said...

#include
int main()
{
int num, x = 0, y = 0, z = 1;

printf("Enter Your Number: ");
scanf("%i", &num);

while(num > 0)
{
x = num % 10;
y = y + (x * z);
z = z * 2;
num = num / 10;
}

printf("%i", y);

getchar();
return 0;
}

Anonymous said...

#include
int main()
{
int num = 1101, x = 0, y = 0, z = 1;

//printf("Enter Your Number: ");
//scanf("%i", &num);

while(num > 0)
{
x = num % 10;
y = y + (x * z);
z = z * 2;
num = num / 10;
}

printf("%i", y);

getchar();
return 0;
}

Anonymous said...

THANKS FOR HELP US.

Shamim Ahmed said...

#include
#include

int main()
{
int dec=0,bin,rem,i=0;
printf("Enter the binary number (0,1): ");
scanf("%d",&bin);
while(bin!=0)
{
rem=bin%10;
dec+=rem*(pow(2,i));
i++;
bin=bin/10;
}
printf("\nDecimal value is= %d\n",dec);
return 0;
}

Harish kumar said...
This comment has been removed by the author.
Anonymous said...

Time Limit Exceeded. how to improve this algorithm

Pavithra said...

how do i go about with binary numbers consisting of decimals? example: 1011.11

Amarjith T.N said...

Good. Thank you

hamad ali said...

how to limit to only 5 bits. for example ( it i enter more than 5 bits of binary number it will show me "do it again", and if it is lees or equal to 5 bits will work).

thanks

Nipun Paradkar said...

Who on earth would do that if it is clearly mentioned to input binary?

Nipun Paradkar said...

Use bitwise operators!

Mony Mey said...

When I enter bin value = 10 000 000 000, it'll show decimal value = 1824 which is wrong.
I don't understand.

Allen jeley said...

cool

Tushar soni said...

I came across this easy program which I found quite interesting!
#include

int power_func(int c,int d)
{
int value=1;
int count=1;
while(count<=d)
{
value=value*c;
count++;
}
return value;
}

void main()
{
int bin_num[15];
int digit_count,dec_num=0;
int a=0,i;
printf("\nEnter The Number of Digits in Binary Number:\t");
scanf("%d",&digit_count);
printf("\nEnter Binary Digits One After Another:\n");
for(i=0;i=0;i--)
{
dec_num=(bin_num[i]*power_func(2,a))+dec_num;
a++;
}
printf("\nDecimal Equivalent of Binary Number:\t %d",dec_num);
printf("\n");
}
Source: http://www.codingalpha.com/convert-binary-to-decimal-c-program/