Program to convert decimal to binary in c




Decimal to binary conversion in c programming language. C source code for decimal to binary conversion:


#include<stdio.h>


int main(){

    long int decimalNumber,remainder,quotient;

    int binaryNumber[100],i=1,j;


    printf("Enter any decimal number: ");

    scanf("%ld",&decimalNumber);


    quotient = decimalNumber;


    while(quotient!=0){

         binaryNumber[i++]= quotient % 2;

         quotient = quotient / 2;

    }


    printf("Equivalent binary value of decimal number %d: ",decimalNumber);

    for(j = i -1 ;j> 0;j--)

         printf("%d",binaryNumber[j]);


    return 0;

}

Sample output:

Enter any decimal number: 50
Equivalent binary value of decimal number 50: 110010



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 decimal to binary algorithm:

Following steps describe how to convert decimal to binary

Step 1: Divide the original decimal number by 2
Step 2: Divide the quotient by 2
Step 3: Repeat the step 2 until we get quotient equal to zero.

Equivalent binary number would be remainders of each step in the reverse order.

Decimal to binary conversion with example:

For example we want to convert decimal number 25 in the binary.

Step 1:  25 / 2  Remainder : 1 , Quotient : 12
Step 2:  12 / 2  Remainder : 0 , Quotient : 6
Step 3:   6 / 2  Remainder : 0 , Quotient : 3
Step 4:   3 / 2  Remainder : 1 , Quotient : 1
Step 5:   1 / 2  Remainder : 1 , Quotient : 0

So equivalent binary number is: 11001
That is (25)10 = (11001)2





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.

42 comments:

  1. thanks to ur great effort........ur work has really been helpful to me n will always be grateful to u.....
    thanks!
    aayush.

    ReplyDelete
  2. truly i feel great to come here

    ReplyDelete
  3. I see your algorithm logic for this uses value 'remainder' and your code declares a variable long int remainder; but this is unused in the program? I'm not sure why!

    ReplyDelete
  4. Yes you are correct. No need to declare remainder. Thanks

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

    ReplyDelete
  6. What about negative decimal numbers as input, will it work?

    ReplyDelete
  7. what if the number has a fractional part?

    ReplyDelete
    Replies
    1. wtf its actually a good question.

      Delete
    2. its simple we can just take decimal part and multiply by 2. take reminder again multiply by 2. Repeat until we get 0

      Delete
  8. how can i save the new binary number in a new array instead of printing it?
    thanks in advance

    ReplyDelete
    Replies
    1. here binaryNumber[i++] is used for storing binary numbers

      Delete
  9. thankx for your help your solution was really very much helpful. i really felt great. Thankx

    ReplyDelete
  10. how can you convert a decimal array into binary one using recursion?
    example:
    (decimal) 1,2,3,4,5 => (binary)0001,0010, 0011, 0100, 0101

    ReplyDelete
    Replies
    1. dude,send me the answer if u have got it.

      Delete
  11. plz answer to olga kuzmin's question..

    ReplyDelete
  12. thanks a lot sir! it helps me a lot!

    ReplyDelete
  13. What if the decimal number is 0? It won't enter the loop

    ReplyDelete
  14. @olga====apply the conversion code in a for loop that trace throufh the array

    ReplyDelete
  15. There is one 0 (zero) more than should be,in the code(last FOR):

    for(j = i -1 ;j> 0;j--)

    there should be J>1 not 0.

    ReplyDelete
  16. were should i put the clrscr(); ??? thanks

    ReplyDelete
  17. Hello dear!!,
    you here printing one by one number. But when you should print it as a number!! Suppose, you need to use the binary conversion as a number,then your logic does not work.
    Thanks.

    ReplyDelete
  18. megha agrawal12/13/13, 5:20 PM

    #include
    #include
    int main()
    { long int decimal,binr=0;
    int bin=0,rem,i;
    printf("enter the decimal number:");
    scanf("%ld",&decimal);
    for(i=1;decimal!=0;i++)
    { rem=decimal%2;
    binr= binr*10 +rem;
    decimal=decimal/2;

    }
    for(i=0;binr!=0;i++)
    { rem = binr%10;
    bin= bin*10 +rem ;
    binr=binr/10;
    }
    printf("the binary equivalent is: %ld",bin);
    getch();
    return 0;
    }
    This is a code with0ut using a array and can be used for decimal to octal num also anly the change is to make 8, where 2 is written.

    ReplyDelete
  19. #include
    void binary(int );
    int main()
    {
    int n;
    scanf("%d",&n);
    binary(n);
    return 0;
    }
    void binary(int p)
    {
    if(p==1)
    printf("1");
    else
    {
    binary(p/2);
    printf("%d",p%2);
    }
    }

    ReplyDelete
  20. Hey, quick question about the value of i. Should the value of i be 100 and not 1. If it 1, the for loop with j would give an error? I'm confused about that.

    ReplyDelete
    Replies
    1. Nevermind. I got the point! Thanks!

      Delete
  21. how to write a program to print the boundary of a matrix

    ReplyDelete
  22. why do i get this and each number of the binary is in a different line and how to fix it
    for instance the number 4 shows as
    1
    0
    0

    ReplyDelete
  23. #include
    #include
    #define CHK_BIT(num,pos) (num&(0x01<<(pos-1)))
    void dec2bin(int num);
    main(){
    int num;
    printf("Enter the Number");
    scanf("%d",&num);
    dec2bin(num);
    }

    void dec2bin(int num){
    int i;
    for(i=31; i>0; i--){
    if(CHK_BIT(num,i))
    printf("1");
    else
    printf("0");
    }
    printf("\n");
    }

    ReplyDelete
  24. Write a program to Convert i) Decimal to Binary ii) Binary to Decimal number at kao paro ?

    ReplyDelete
  25. #include "stdafx.h"
    #include "iostream"
    #include "conio.h"
    using namespace std;
    int main()
    {
    int i=2;
    int n,a;
    cout<<"enter a decimal number"<<"\n";
    cin>>n;
    int arr[32];
    if(n>0)
    {
    arr[0]=0;
    }
    else
    {
    arr[0]=1;
    }
    if(arr[0]==1)
    {
    n=n/-1;
    }
    a=n;
    while(a>1)
    {

    arr[i]=n%2;
    a=a/2;
    n=a;
    i=i+1;
    };
    arr[1]=1;
    for(int j=i;j<32;j++)
    {
    arr[j]=0;
    }
    cout<<"the given array is"<<"\n";
    cout<<arr[0]<<arr[1];
    for(int j=2;j<32;j++)
    {
    cout<<arr[j];
    }

    return 0;
    }

    ReplyDelete
  26. #include "stdafx.h"
    #include "iostream"
    #include "conio.h"
    using namespace std;
    int main()
    {
    int i=2;
    int n,a;
    cout<<"enter a decimal number"<<"\n";
    cin>>n;
    int arr[32];
    if(n>0)
    {
    arr[0]=0;
    }
    else
    {
    arr[0]=1;
    }
    if(arr[0]==1)
    {
    n=n/-1;
    }
    a=n;
    while(a>1)
    {

    arr[i]=n%2;
    a=a/2;
    n=a;
    i=i+1;
    };
    arr[1]=1;
    for(int j=i;j<32;j++)
    {
    arr[j]=0;
    }
    cout<<"the given array is"<<"\n";
    cout<<arr[0]<<arr[1];
    for(int j=2;j<32;j++)
    {
    cout<<arr[j];
    }

    return 0;
    }

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

    ReplyDelete
  28. the code will not work for negative decimal numbers & also for decimal numbers with fraction part..!!

    ReplyDelete
  29. #include
    int i=0;
    int reminder[100];
    binary(int decimal)
    {
    if(decimal==0)
    {
    reminder[i++]=decimal;
    }
    else if(decimal==1)
    {
    reminder[i++]=decimal;
    }
    else
    {
    reminder[i++]=decimal%2;
    decimal=decimal/2;
    binary(decimal);
    }
    }
    int main()
    {
    int decimal,j;
    printf("Enter a decimal number :");
    scanf("%d",&decimal);
    binary(decimal);
    for(j=i-1;j>=0;j--)
    printf("%d",reminder[j]);
    return 0;
    }

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

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

    ReplyDelete
  32. HI can i use dynamic memory to solve this problem?Is this approach considered appropriate? And ofcourse, i have written the program in c++ instead of c. But i only wanted to confirm if this approach is legible.
    #include
    #include
    using namespace std;

    int to_binary(int num){
    bool *binary_sequence;

    if (num==1) return 1;
    else if(!num)return 0;
    int counter=0;
    while (num>1){
    if (counter==0)
    {
    binary_sequence=new bool[counter+1];
    binary_sequence[0]=num%2;
    }
    else
    {
    bool temp[counter];
    for(int i=0;i=0;index--)
    {
    result=result=result*10;
    result=result+binary_sequence[index];

    }

    delete [] binary_sequence;
    return result;
    }
    int main()
    {
    int n;
    cout<<"Enter any number "<>n;
    cout<<"Binary equivalent "<<endl;
    cout<<to_binary(n);
    getche();
    return 0;
    }

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

    ReplyDelete
  34. I am really very agree with your qualities it is very helpful for look like home. Thanks so much for info and keep it up.
    fx indicator

    ReplyDelete
  35. Nicely presented information in this post, I prefer to read this kind of stuff. The quality of content is fine and the conclusion is good. Thanks for the post.
    top stock options school

    ReplyDelete
  36. Thanks for your refreshingly straight talk on this amazing topic .
    trading for beginners

    ReplyDelete
  37. Good topic, this is going to help a lot of people get the whole concept.
    bina droid

    ReplyDelete