LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 2013
-
19 déc. 2007 à 13:50
LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 2013
-
19 déc. 2007 à 20:11
Bonjour,
Je presente mon probleme : j' effectue une communication entre un software developpe en C++ et un automate
et je rencontre un probleme sur une certaine donnée que je n'arrive pas a convertir.
l'automate m'envoit '89' mais moi je me retrouve avec un INT -> 14393 (je lis un type WORD)
j'ai essayer de le convertir avec itoa ou autre sprintf mais rien ny fait je n'arrive pas a retrouver le 89 de départ et le stocker dans une variable type char Dest[10] ....
comment faire pour convertir ce 14393 et retomber sur 89???
Merci de bien vouloir m'aider car je galere et sans cela je suis totalement bloqué dans mon travail.
Merci d'avance pour vos reponses.
LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 20131 19 déc. 2007 à 14:07
je rajoute que je ne comprends meme pas comment en partant de 89 en ASCII (soit disant) je me retrouve avec 14393
et pareil pour la suite 67->13879, 45->13365
quelqu'un pourrait avoir l'amabilité de m'aider sur ce coup la SVP.
car je suis totalement paumé :-(
je lui en serais gres jusqua la fin de ma vie ....
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 19 déc. 2007 à 18:14
Je lui en SAURAI gré...
C'est pas compliqué ton soft te communiques une chaîne fixe de 2 caractères en ASCII.
ex. convertis 14393 en hexa tu trouves 0x3839...soit précisemment les codes ASCII de '8' (0x38) et '9'(0x39).
Alors pour obtenir ton nombre pas compliqué :
WORD number; // je suppose qu'il est là-dedans
short number=13879; // je suppose qu'il est là-dedans
char result=10*(((number&0xFF00)>>0x8)-'0')+(number&0xFF)-'0';
Attention ca marchera seulement si la chaîne d'entrée est en décimal sinon faudra tester un peu, mais c'est pas bien compliqué.
LaTatadu91
Messages postés968Date d'inscriptionjeudi 20 mai 2004StatutMembreDernière intervention26 avril 20131 19 déc. 2007 à 20:11
OK
merci de ton aide et de reprendre mon francais (je savais pas )
j'ai trouver un autre biais pour mon probleme, on es passer avec un DWORD
et la les 10 characteres sont passés niquel
jte remercie et garde ton code au chaud on sait jamais....