Binários em C

Iniciado por kcnp, 30 de Outubro de 2007, 13:04

tópico anterior - próximo tópico

kcnp

Gente, eu tô com uma dúvida. É que eu não sei trabalhar com numeros binários em C e na minha aula de estruturas de dados o professor falou em um algoritmo de compactação de texto que deveria gerar um arquivo binário. Mas eu não sei como converter algo para bits, pois se eu fizesse uma função que mudasse de inteiro para binário eu só estaria simulando binários, mas na verdade o tamanho que ocupariam continuaria a ser o de inteiros, ou seja, oito bits, não havendo compactação de texto, e sim piora, por que eu taria convertento char em int. Como faço para gerar bits,arquivos binários e manipulalos? Como faço para trabalhar em binários?
kcnp

mailson

Vejo que você se confundiu um pouco na explicação do professor. Ele não pediu para você converter um texto por exemplo em números binários para então gravar no arquivo.
Ao invés de você gravar em um arquivo de texto simples você terá que gravar num arquivo binário.

Para gravar um tipo de dados definido pelo usuário (typedef) por exemplo você precisa gravar num arquivo binário.
É bem simples. É só colocar um b no lugar do t ao lado do modo de abertura.

Procura se informar melhor no google que você vai obter informações mais completas. Existem diversos textos em português falando sobre o assunto

kcnp

Tudo bem, mas o metodo que ele falou consiste em associar binarios menores a caracteres que aparecem com mais frequência.  . Como eu faço isso só salvando arquivos binários? Eu sei que eu tenho que salvar arquivos binários, mas como salvar um numero binário em específico neste arquivo? Se eu quiser salvar a sequencia 1011001 no meu arquivo como eu faço?
kcnp

mailson

#3
Agora eu entendi o que você quis dizer.
Achei bem interessante mas não vou poder ajudar porque estou de saída. Tenta procurar algo no google.
Achei o problema bem interessante

Ainda não consegui pensar em uma solução em C. Somente uma idéia em Assembly