title: C++ - Decimal to binary converting
body: <p>I wrote a 'simple' (it took me 30 minutes) program that converts decimal number to binary. I am SURE that there's a lot simpler way so can you show me?
  Here's the code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;stdlib.h&gt;
  
  using namespace std;
  int a1, a2, remainder;
  int tab = 0;
  int maxtab = 0;
  int table[0];
  int main()
  {
      system("clear");
      cout &lt;&lt; "Enter a decimal number: ";
      cin &gt;&gt; a1;
      a2 = a1; //we need our number for later on so we save it in another variable
  
      while (a1!=0) //dividing by two until we hit 0
      {
          remainder = a1%2; //getting a remainder - decimal number(1 or 0)
          a1 = a1/2; //dividing our number by two
          maxtab++; //+1 to max elements of the table
      }
  
      maxtab--; //-1 to max elements of the table (when dividing finishes it adds 1 additional elemnt that we don't want and it's equal to 0)
      a1 = a2; //we must do calculations one more time so we're gatting back our original number
      table[0] = table[maxtab]; //we set the number of elements in our table to maxtab (we don't get 10's of 0's)
  
      while (a1!=0) //same calculations 2nd time but adding every 1 or 0 (remainder) to separate element in table
      {
          remainder = a1%2; //getting a remainder
          a1 = a1/2; //dividing by 2
          table[tab] = remainder; //adding 0 or 1 to an element
          tab++; //tab (element count) increases by 1 so next remainder is saved in another element
      }
  
      tab--; //same as with maxtab--
      cout &lt;&lt; "Your binary number: ";
  
      while (tab&gt;=0) //until we get to the 0 (1st) element of the table
      {
          cout &lt;&lt; table[tab] &lt;&lt; " "; //write the value of an element (0 or 1)
          tab--; //decreasing by 1 so we show 0's and 1's FROM THE BACK (correct way)
      }
  
      cout &lt;&lt; endl;
      return 0;
  }
  </code></pre>
  
  <p>By the way it's complicated but I tried my best.</p>
  
  <p><strong>edit - Here is the solution I ended up using:</strong></p>
  
  <pre><code>std::string toBinary(int n)
  {
      std::string r;
      while(n!=0) {r=(n%2==0 ?"0":"1")+r; n/=2;}
      return r;
  }
  </code></pre>