Ciao a tutti,
ho l'esigenza di memorizzare in una stringa il valore esadecimale di una sequenza di byte che leggo da un file binario.
Per il momento ho scritto questo codice, ma qualcosa non va:
Il problema è che dopo aver effettuato la conversione "itoa", la variabile Hex non contiene solo i due caratteri esadecimali, ma contiene anche diverse "F".codice:char* AsciiToHex(char* sAscii,int Lunghezza) { char *StringaEsadecimale, *Hex; int i; StringaEsadecimale=(char*)malloc(Lunghezza*2+1); StringaEsadecimale[0]='\0'; Hex=(char*)malloc(sizeof(char)*3); for(i=0;i<Lunghezza;i++) { itoa(sAscii[i],Hex,16); strcat(StringaEsadecimale,Hex); } return StringaEsadecimale; }
Per esempio se nel file ho un "1", mi aspetto il suo valore esadecimale "31", ma ottengo "FFFFFF31".
Probabilmente mi manca qualche concetto di C++...

Rispondi quotando