Comportement que je ne comprends pas dans un convercion en Hexa
Bonjour
j'essaie de convertir un tableau caractères en hexa (les valeurs viennent d'un fichier en EBCDIC).
Quand je fais une conversion avec sprintf ou std::hex, toutes valeures au dessus de 80 (en hexa) ne sont pas bonnes :
exemple, au lieux d'avoir D3, j'ai FFFFFF45
un bout de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| string strToHexStr(char *str, int lenght) {
char *cpold = str;
string strRet = "";
int num;
char tmp[2];
for (int i = 0; i < lenght; i++) {
sprintf(tmp, "%02X", (char) (*cpold++));
strRet.append(tmp);
}
return strRet;
} |
Est ce qq a une idée du problème?
Merci d'avance