title: How to manipulate and represent binary numbers in C++
body: <p>I'm currently trying to build a lookup table for a huffman tree using a pretty simple preorder traversal algorithm, but I'm getting stuck carrying out very basic bit wise operations. The psuedo code follows:</p>
  
  <pre><code>void preOrder(huffNode *node, int bit) //not sure how to represent bit
  {
    if (node == NULL)
      return;
  
    (1) bit = bit + 0; //I basically want to add a 0 onto this number (01 would go to 010)
    preOrder(node-&gt;getLeft(), bit);
    (2) bit = bit - 0 + 1; //This should subtract the last 0 and add a 1 (010 would go to 011)
    preOrder(node-&gt;getRight());
  
  
  }
  </code></pre>
  
  <p>I'm getting quite confused about how to carry out the operations defined on lines (1) and (2)</p>
  
  <p>What data type type does one use to represent and print binary numbers? In the above example I have the number represented as an int, but i'm pretty sure that that is incorrect. Also how do you add or subtract values? I understand how &amp; and | types logic works, but I'm getting confused as to  how one carries out these sorts of operations in code. </p>
  
  <p>Could anyone post some very simple examples?</p>