COmpressão e descompressão de arquivo LZW

Oi Pessoal!
sou nova aqui!
Tenho uma duvida não sei se deveria postar aqui ou em outro topico mas vai aqui mesmo
Bom tenho que fazer um LZW, este é o enunciado do problema:

O arquivo (cujo nome será fornecido pelo usuário) deverá ser lido byte a byte, isto é, deve-se considerar a existência de 256 símbolos iniciais no dicionário. Seu programa deverá construir um dicionário a partir do conjunto de dados e utilizá-lo para a compressão do arquivo. O dicionário deverá ter seu tamanho limitado a 65536 (= 216). A tokens geradas pelo codificador terão 03 bytes de comprimento, isto é, 02 bytes para o indicador da posição do prefixo no dicionário mais 01 byte para o indicador do símbolo.
De modo a permitir a descompressão do arquivo, o decodificador deverá reconstruir o mesmo dicionário utilizado na compressão (adotando inclusive a mesma regra utilizada na compressão para lidar com o fato do dicionário eventualmente ficar cheio).

bom estou em duvida como devo ler o arquivo e como devo armazena-lo no vetor do dicionario, se em char ou int?

se alguém puder me ajudar serei muito grata!

Valeu!