All I really know is PHP and I used the decbin function etc, It was fairly easy to do. In this C++ program I want to do the same thing, just a simple number or string how would I do this? 
7 Answers
A simple function could be defined such as this:
void binary(int decimal) {
   int remainder;
   if(decimal <= 1) {
       std::cout << decimal;
       return;
   }
   remainder = decimal % 2;
   binary(decimal >> 1);    
   std::cout << remainder;
}
Although there are many other resources on the web on how to do this..
A noteworthy question for efficiency of it here, as you may want more than just that: Efficiently convert between Hex, Binary, and Decimal in C/C++
- 
                    1@oni-kun, C++ has a lot more to offer if you look into it, decbin isn't all that different from these solutions. – Nullw0rm May 10 '10 at 10:35
- 
                    2The parameter name `int decimal` makes no sense. Numbers aren't inherently decimal, they are just numbers. (In fact, they are always stored in binary form internally.) – fredoverflow May 10 '10 at 10:46
- 
                    @Fred, It is decimal into binary, hence the param. He didn't specify any other data type. – Nullw0rm May 10 '10 at 10:51
- 
                    2@Null But `int` is NOT a decimal type! It just so happens that the common output routines will print an `int` as a decimal number. The calls `binary(37)` and `binary(0x25)` are completely equivalent -- the arguments are neither decimal nor hexadecimal, they are just integral numbers -- `int`s. – fredoverflow May 10 '10 at 11:24
- 
                    @Fred the integer represents a decimal, I can make it a float or double for all it matters, the name of the `int` was decimal as that was the suggested input. – Nullw0rm May 12 '10 at 13:29
you can do this non-recursively using something like this:
std::string Dec2Bin(int nValue, bool bReverse = false)
{
    std::string sBin;  
    while(nValue != 0)
    {
       sBin += (nValue & 1) ? '1' : '0';
       nValue >>= 1;
    }
    if(!bReverse)        
        std::reverse(sBin.begin(),sBin.end());
    return sBin;
}
of course this isn't too architucture friendly, but it avoids cout, just incase your not using a console. it also outputs in any bit ordering.
 
    
    - 25,836
- 3
- 63
- 101
- 
                    Maybe add replace last line with something like `return sBin.size() ? sBin : "0"`, so as to display `0` as well. – tshepang Dec 10 '12 at 14:58
Similar to @Necrolis answer without the need for an if, and the reversal of the string.
string decimalToBinary(int decimal) {
  string binary;
  while(decimal)  {
      binary.insert(0, 1, (decimal & 1) + '0');
      decimal >>= 1;
  }
  return binary;
}
 
    
    - 347
- 3
- 8
offering the iterative approach (pardon the #defines (but i'm quite sure they will be compiled to the expression's value), i don't quite remember predefined macro/constants in C):
#define INT_ARCH 32
#define ARCH_SHIFTABLE (INT_ARCH - 1)
#define ARCH_MAX_INT 1 << ARCH_SHIFTABLE
void dec_to_bin(int decimal)
{                
    int shifter = ARCH_MAX_INT;
    for(; shifter > 0; shifter >>= 1)
        cout << (decimal & shifter);        
}
 
    
    - 38,643
- 9
- 94
- 118
Do with simple way in c++
#include <iostream>
using namespace std;
int main()
{
long n, rem, binary=0, i=1;
cout<<"Enter a int: ";
cin>>n;
 while(n != 0) 
   {
        rem = n%2;      
        n = n/2;        
        binary= binary + (rem*i); 
        i = i*10;
    }
cout<< "\nAns:   "<<binary <<endl;
return 0;
}
 
    
    - 509
- 6
- 13
 
     
     
     
    