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.

13 comments:

  1. 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 ?

    ReplyDelete
  2. I can't understand this program please explain with step

    ReplyDelete
  3. 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.

    ReplyDelete
  4. what does the "j" stand for?

    ReplyDelete
  5. 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..

    ReplyDelete
  6. #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;
    }

    ReplyDelete
  7. #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;
    }

    ReplyDelete
  8. THANKS FOR HELP US.

    ReplyDelete
  9. #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;
    }

    ReplyDelete
  10. This comment has been removed by the author.

    ReplyDelete
  11. Time Limit Exceeded. how to improve this algorithm

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

    ReplyDelete