Manipular os dados em código de máquina ( zeros e uns)

1 resposta
cjava
kleberaugus

Gostaria de saber se alguém me dá uma luz, queria saber qual assunto eu devo procurar na internet ou livros para aprender a manipular (ler, modificar e gravar novamente) os dados de um arquivo(em código de máquina). É que eu consegui fazer um algoritmo para um compactador que reduz um código de máquina (zeros e uns) em até a metade do tamanho, e pelo que vi os compactadores atuais não chegam nem a 20% menor, e até dá pra reduzir bem mais é que eu só cheguei em um algoritmo eficaz agora e tenho que fazer testes. Mas pra fazer esses testes eu preciso saber manipular os bits, transforma-los em inteiros, fazer alguns cálculos e transformá-los em bits novamente para guarda-lo compactado. Mas eu nem sei o que estudar para conseguir isso. Alguém pode me ajudar? Eu tenho o algoritmo mas não sei utilizar a linguagem de programação para implementar meus cálculos e gravar os dados novamente compactados.

1 Resposta

peczenyj

Primeiro, imagine que vc ja leu o arquivo e vc carregou os bytes em memoria

Ai aprenda a fazer operações bit-a-bit ( bitwise ). Em C por exemplo:

http://www.cprogramming.com/tutorial/bitwise_operators.html

quando vc dominar isso, estude as APIs de acesso a arquivo. POSIX por exemplo, presente em muitos sistemas como MacOS e Linux, vc pode ler através da instrução sysread ( e tem um syswrite ) e vc pode controlar a quantidade de bytes que vc pode ler.

vc pode ler atraves da api bufferizada com fread ( e tem um fwrite )

http://www.cplusplus.com/reference/cstdio/fread/

mas acredite, se vc não conseguir manipular os bits em memoria, nao vai ser lendo de um arquivo que vc vai conseguir. baby steps.

Criado 24 de setembro de 2016
Ultima resposta 25 de set. de 2016
Respostas 1
Participantes 2