hexa string vers decimal string - C++ - Programmation
Marsh Posté le 16-12-2010 à 15:31:39
Oui, on peut voir ça comme un exercice à but pédagogique même si je n'ai jamais eu de cours de C++ et c'est ce qui me fait défaut en dirait Voilà ce que j'ai essayé :
string hexa="3a36365508";
string (decim);
for (int i = 0; i < hexa.size(); i++)
{
sprintf(&decim[i], "%02x", hexa[i]);
}
Mais au lieu d'obtenir :
03 10 03 05 05 02 00 00 08
Je lis :
33 61 33 36 33 36 35 35 30 38
Cordialement,
Franck
Marsh Posté le 16-12-2010 à 17:38:42
Les caractères de 0 à f dans dans ta chaine suivent ce qu'on appelle le code ASCII, if faut que tu fasse un petit quelque chose avant d'afficher.
Marsh Posté le 16-12-2010 à 22:23:52
mes souvenirs de C++ sont (très) lointains mais c'est pas un peu HS le sprintf en C++ ?
Le %x c'est pour afficher un entier en hexa, toi tu veux l'inverse, spabon
Marsh Posté le 18-12-2010 à 17:12:02
Ben si ça compile et ça sort bien ce qu'il a mis.
Marsh Posté le 18-12-2010 à 17:58:31
Voici une version C. Ca pourra t'aider pour écrire la version C++
Code :
|
Marsh Posté le 19-12-2010 à 00:37:39
Quel est le type attendu pour decim ?
Quel est le sens de faire des sprintf à chaque caractère pour écrire une chaine complète ?
Qu'est-ce qui écrit effectivement la sortie que l'on doit lire ?
je viens de tester, par miracle, ce code compile et ne crashe pas sur mon essai, mais pour moi, ce code est complètement invalide.
Marsh Posté le 16-12-2010 à 09:08:34
Bonjour,
Je souhaite convertir un string contenant 10 valeurs hexadécimales en un string contenant l'équivalent décimale codé sur deux caractères.
Exemple :
hexadécimal : 0f27951c0a0
decimal : 0015020709050112001000
Si quelqu'un à une idée ou à déjà codé une fonction similaire, je suis preneur.
Merci d'avance,
Franck