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:
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;
}
Il problema è che dopo aver effettuato la conversione "itoa", la variabile Hex non contiene solo i due caratteri esadecimali, ma contiene anche diverse "F".
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++...