Como manipular e representar números binários em C ++
No momento, estou tentando construir uma tabela de pesquisa para uma árvore huffman usando um algoritmo de navegação de pré-ordem bastante simples, mas estou ficando preso realizando operações bit básicas muito básicas. O código do psuedo segue:
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->getLeft(), bit);
(2) bit = bit - 0 + 1; //This should subtract the last 0 and add a 1 (010 would go to 011)
preOrder(node->getRight());
}
Estou ficando bastante confuso sobre como realizar as operações definidas nas linhas (1) e (2)
Que tipo de tipo de dados é usado para representar e imprimir números binários? No exemplo acima eu tenho o número representado como um int, mas tenho certeza que isso está incorreto. Além disso, como você adiciona ou subtrai valores? Eu entendo como & e | tipos de lógica funciona, mas estou ficando confuso quanto à forma como se realiza esses tipos de operações no código.
Alguém poderia postar alguns exemplos muito simples?