Lista de discussão de MAC 2301
[Prévia por Data][Próxima por Data]
[Prévia por Assunto][Próxima por Assunto]
[Índice por Data][Índice por Assunto]
[Envie uma nova mensagem para a lista]
[Responda esta mensagem]
RE: Re: EP3 - não era bem isso que eu queria dizer
- Subject: RE: Re: EP3 - não era bem isso que eu queria dizer
- From: Satai <satai@newmail.net>
- Date: Fri, 25 May 2001 22:29:36 -0300
Tá... só que não é bem isso que eu quero dizer. O esquema é o seguinte: a
gente tem o código que o computador usa, de 8 bits, e a gente tem um código
gerado pela árvore de huffman, no qual cada caractere (imaginando que
codificamos todos os caracteres do código original do computador) pode ter
de 1 a 255 bits, certo? Aí eu pego, abro um arquivo compactado, dou um
getc(), e pego uma letrinha: 8 bits. Isso é ruim. Eu quero 1 só. Ou então
não. Eu pego, abro um arquivo no qual eu planejo escrever o meu código
compactado, e quando eu vou mandar o meu putc(), surpresa: ele manda bytes
inteiros para o arquivo.
Claro, eu sei que é possível fazer tudo só com ascii e divisões por
potências de 2 ou shifts - mas putz, que trabalho ingrato! O micro opera
com bits, eu quero operar com bits, não é meio infeliz eu me matar pra usar
um byte de uma maneira que só dá mais trabalho pro micro? Do jeito que
está, o melhor método que eu consegui imaginar é criar uma cópia do arquivo
com os valores dos caracteres em binário (escrito em ascii, claro, ia sair
um monstro, com oito vezes o tamanho do arquivo original) e depois refazer
a leitura por lá, ou codificar a escrita a partir de lá... o que não é lá
algo muito bom, né? Então, voltando à pergunta original:
Como eu faço pra abrir um arquivo e trabalhar com valores binários; como
eu trabalho com bits? Tem alguma biblioteca? Um putbit, getbit, sei lá...
qualquer coisa que amenize o sofrimento de trabalhar com caracteres de
tamanho variável serve...
Grazie,
Iúri Chaer
PS.: desculpa resmungar, é que eu já estou quebrando a cabeça em cima disso
e lendo o Kernigan há horas...