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é :
 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