View Single Post
Old 17-01-2009, 16:43   #1
cocca81
Junior Member
 
Iscritto dal: Jan 2009
Messaggi: 3
[C] come utlizzare al meglio la memoria

Ciao.
devo leggere da un file quante volte un carattere è ripetuto se consecutivo, per poi scriverlo in un file nuovo ad esempio: aaabb ccd...ecc ecc, diventerà 3a2b(spazio)2c1d...ecc. e fin qui è tutto facile. Per il docente
questa è considerata un'implementazione banale, perchè viene utilizzato un carattere (1 char, ovvero 1 byte) per ogni cifra del numero di occorrenze del carattere da ripetere; quindi devo utilizzare al meglio la memoria per quanto riguarda la memorizzazione delle cifre. Mi sono
documentata sull'aritmetica binaria, ad esempio i numeri da 0 a 3,
li posso rappresentere con 2 bit, quelli da 4 a 7 con 3 bit,da 8 a 15 con 4 bit e così via, ma non riesco a capire come posso implemetare questa soluzione.
Cmq avrei anche già creato una lista:
struct carattere
{
char carat; //carattere che leggo dal file
int NumVolRip; //conta quante volte un carattere è consecutivo
struct carattere *next;

};
Potrebbe già andare bene così?
Grazie per l'aiuto!!! Ciao ciao
cocca81 è offline   Rispondi citando il messaggio o parte di esso