rpmour
(usa Ubuntu)
Enviado em 14/11/2013 - 10:10h
Então deveria estar atribuindo para a variável auxBits=1, e só depois deslocando esse 1? Então no laço sempre que encontro 1 em buffer[it], faço, mas agora considere a auxBits=1, auxBits=auxBits<<(8-it), que seria 00000001<<(8-it) e ficaria 10000000, certo? E depois disse fazia uma operação "ou" com a variável bits=bits|auxBits; e se, por exemplo, bits for 00000000 | 10000000 resultaria em 10000000. Só estou fazendo isso quando aparecer 1 na variável buffer, porque com zero o resultado seria 0.
Você parece estar construindo um compressor de dados. Acho curioso que, no processo, esteja na verdade criando uma absurda expansão de dados por meio do array buffer, que armazena cada bit ocupando um byte inteiro.
E sim é um compressor de dados baseado no Código de Huffman. E quando ao armazenamento de cada bit em um byte, mas apenas na memória principal. E como o uso do bitset, seria bitset<tamanho> variavel; E poderia trabalha normalmente com essa variável, assim como uma de outro tipo?
Tenho outra pergunta, como passo, se possível, para uma outra função, o ponteiro para o arquivo "gravacao": ofstream gravacao("arq1.huf", ios::binary|ios::app)?