Convertir un entier decimal en hexadecimal de la forme 0x1B
cs_slobberbone
Messages postés19Date d'inscriptionjeudi 2 octobre 2003StatutMembreDernière intervention21 juillet 2005
-
20 juil. 2005 à 16:08
cs_slobberbone
Messages postés19Date d'inscriptionjeudi 2 octobre 2003StatutMembreDernière intervention21 juillet 2005
-
21 juil. 2005 à 11:20
Bonjour !
Voilà je developpe sous visual C++ et je voulais savoir s'il existait
une fonction ou si qq1 en avait dejà créee une qui permet de faire un
truc du genre :
je lui envoi un entier décimal 10 et elle me renvoi un entier hexa de la forme 0x0A par exemple ...
cs_slobberbone
Messages postés19Date d'inscriptionjeudi 2 octobre 2003StatutMembreDernière intervention21 juillet 2005 21 juil. 2005 à 09:40
Merci pour toute ces réponses, mais ce que je veux essayer de faire c
qu'à partir dun nombre décimal obtenir un nombre hexadécimal de la
forme 0x5A par exemple pour la valeur 90 !!
mais je veux garder le format int du debut jusqu'à la fin ...
pcq sprintf travaille avec des chaines de caractères ... et c pas
ce que je souhaite vu qu'il faut que je renvoi la valeur sur le port
série sous la forme 0x1B ...
pcq g essayé avec atoi() pour reconvertir le resultat de sprintf() mais ca ne donne rien ...
Merci beaucoup encore une fois !
Mais c pcq g peut -etre pas etais assez precis ...
Alcantornet
Messages postés89Date d'inscriptionmardi 8 février 2005StatutMembreDernière intervention14 novembre 2007 21 juil. 2005 à 10:02
Hello,
Dans un format int, il n'est pas question d'hexadécimal, de décimale... c'est tout de façon du BINAIRE, tu
peux pas avoir de l'hexa dans du int. C'est juste lors d'un affichage
que tu peux choisir le formattage ou dans une chaîne de caractère mais
pas dans un int.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 21 juil. 2005 à 10:23
farpaitement, la valeur d'un nombre ne depend pas de la base dans laquelle il s'exprime !!!
seul son aspect quand tu l'affiches en depend.
il y a egalite entre 90 (base10) et 0x5A (base16). A l'écran ca n'est
pas pareil parce que ce meme nombre est exprimé dans deux bases non
identiques, mais sinon c'est le meme !!
d'ailleurs tu peux vérifier que 0x5A + 90 = 180 ... (printf("val : %d\n", 0x5A+90) )
il y a une petite confusion dans ton esprit ...
si sur ton port série tu envoies 0x5A ou 90, et que tu sniffes, dans
les 2 cas il va t'afficher 0x5A (s'il taffiche les choses en hexa)