Conversion INT vers HEX avec formatage

Résolu
Signaler
Messages postés
84
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
22 juillet 2008
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
bonjour,

je souhaite convertir un integer en hexa, mais avec une representation sur 32 bits dans tous les cas ..
exemples :
int = 15         ==> 0000000F
int = 16845    ==> 000041CD
int = 2784592 ==> 002A7D50

j'arrive pas à me depatouiller avec la fonction Hex(..) .. ca me tronque les 0 non significatifs ..

merci

10 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Essaye peut-etre avec ceci :

toto = Right("00000000" & Hex(titi) , 8)

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
2
mmmm moi j'aurais fait plus simplement :
toto=Convert.ToString(i, 16).PadLeft(8,

"0")

où i est la valeur entiere. C'est la même chose mais je ne comprend pas à quoi sert la variable "titi" au dessus

casy : Content que tu sois de mon avis, je me bas souvent pour cette cause depuis que je la soutien. ^^
Je prevois d'ailleurs, (je te le reproposerais), de créer une source commune qui referencerait toutes les équivalences les plus demandée.

HvB a.k.a BaTo ^^x
http://chat.batto.info/ ^^'
http://batto.info/ 
Messages postés
84
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
22 juillet 2008

nickel, mercy casy, que ferait on sans toi ;)
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
2
mais.... casy tu es le premier à être d'accord avec moi pour eviter d'utiliser les residus de vb en .net non?

HvB a.k.a BaTo ^^x
http://chat.batto.info/ ^^'
http://batto.info/ 
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Exact, j'avais pas fait gaffe que c'était en .Net

Tellement d'accord avec toi que de plus en plus qu'en je vois du code VB6 (comme ici), je n'imagine plus (et ne vérifie pas non plus) que ça peut etre dans la rubrique .Net

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
84
Date d'inscription
mardi 3 février 2004
Statut
Membre
Dernière intervention
22 juillet 2008

alors en .net pur .. ca donnerait quoi ?
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
En pur .Net, déjà il n'est pas évident de faire une conversion en Hexa en se passant des service de l'assembly Microsoft.VisualBasic (la fameuse bibliothèque qui pour moi ne devrait jamais etre utilisée en .Net)

Mais il existe quand même certainement plusieurs possibilités, l'une d'elles pourrait etre celle-ci :

        toto = titi.ToString("X").PadLeft(8, "0"c)

ToString("X") pour convertir en Hexa,
PadLeft pour faire le remplissage à gauche.

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
titi est tout simplement le nombre à convertir, ta variable i en fait

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
939
Date d'inscription
vendredi 25 octobre 2002
Statut
Membre
Dernière intervention
27 janvier 2009
2
c'est donc bien EXACTEMENT la même chose ^^'

pas grave, y avait un message dans ma contribution :p

HvB a.k.a BaTo ^^x
http://chat.batto.info/ ^^'
http://batto.info/ 
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Pour la source d'équivalence, pourquoi pas, mais ça va peut-etre pas etre si évident car pour moi il n'y a pas forcément équivalence aussi simplement, à part peut-etre pour les fonctions de chaines comme Left, Mid, Split, ....

Sinon plus qu'une équivalence de fonctions, c'est plutot une organisation du code qui est à repenser. Ce n'est donc pas une fonction VB6 dont il faut trouver l'équivalence, mais quelques fois c'est les 10 lignes + les 10 lignes après qu'il faut réencoder, quand ça ne se reporte pas sur plusieurs niveau d'appel de fonctions.

D'autant plus que avec la puissance de .Net, suivant comment tu pense ton code, tu peux avoir plusieurs chemins pour arriver à la même chose.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php