Bonjour,

je cherche à convertir chaque element d'un tableau de bytes en une chaine de type hexa de cette forme:

"0 b4 30 f2 ab ea 2d" etc...

le problème c'est que j'obtiens ça:

"0 ffffffb4 30 fffffff2 ffffffab ffffffea 2d "

en gros il y a des "ffff" qui sont rajoutés , je ne comprend pas, voici mon source:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
string Licence::getDecodeToHex(char* tab, int size,string &sRetour){
 
	std::ostringstream oss;
 
    // Afficher en héxadécimal 
    oss << std::hex ;
 
    for (int i = 0; i < size; ++i)
    {
        // Séparer chaque octet par un espace
        if (i != 0)
            oss << ' ';
 
        // Afficher sa valeur hexadécimale
        // setw(2) permet de forcer l'affichage à 2 caractères
        oss << std::setw(2) << static_cast<int>(tab[i]);
    }
	sRetour=oss.str();
	return sRetour;
ce code aussi donne le même problème:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
string Licence::getDecodeToHex(char* tab, int size,string &sRetour){
        string chaine;
	ostringstream oss;
 
	for(int i=0;i<size;i++){
	   oss << std::hex << std::setw(2)<<static_cast<int>(tab[i])<< ' ';
 
	}
	sRetour=oss.str();
 
	return sRetour;
}
vous avez une idée du problème ?

merci