déclaration variable héxacimale

Résolu
taf06 Messages postés 18 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 15 février 2011 - 29 mai 2009 à 15:02
taf06 Messages postés 18 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 15 février 2011 - 30 mai 2009 à 22:56
Bonjour,
je voudrais savoir comment déclarer et initialiser une variable héxadécimale sous visual basic studio.
j'essaye
dim var As Byte
var = 0x01

apparemment ça ne marche pas.
merci d'avance.

8 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
29 mai 2009 à 17:11
Pour ce qui est de la conversion des types en .Net il est vrais que l'on peut utiliser le Variable.To...

Cela ne fonctionne malheureusement pas pour ToHex, en effet l' Hexa n'étant pas un type, il n'y a donc pas de conversion en Hexa, il est considéré comme un simple string,
ce que démontre d'ailleurs la fonction Hex

Public Function Hex(ByVal NumberAs [...]) As String
Membre de Microsoft.VisualBasic.Conversion
Résumé :
Returns a string representing the hexadecimal value of a number.
Paramètres :
Number: Required. Any valid numeric expression or String expression.
Valeurs de retour :
Returns a string representing the hexadecimal value of a number.

Qui retourne une valeur String

@+ Mayzz
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
29 mai 2009 à 16:47
Le type Hexadécimal n'existe pas en vb,

Déclare une vairable String

Le type Byte est réservé à un nombre de 0 à 255.

Pour convertir un des décimales ou autre en Hexa utilise la fonction Hex

Dim Hexa As String = Hex (255)

++ Mayzz
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 mai 2009 à 16:52
Salut
En effet, pas de type Hexa.
Sous VB6, il y avait possibilité d'une notation particulière sur une variable de type Long (32 bits) : &H01
Par exemple :
   Dim maVar As Long
   maVar = &H01

Pour lire le contenu en hexa, il fallait avoir recours à la fonction Hex qui renvoie une chaine :
   MsgBox Hex(maVar)

Pas de temps d'essayer sous .Net, mais je pense que la première convention existe toujours et que la conversion à l'affichage doit exister avec un truc du genre
   maVar.ToHex

A tester, donc

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 mai 2009 à 16:54
Rappel :  Long en VB6 = Integer en .Net
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
taf06 Messages postés 18 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 15 février 2011
29 mai 2009 à 17:30
ok, d'accord, je crois que je vais me servir de la fonction hex();
merci!
0
sturtrid Messages postés 133 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 13 juillet 2012 1
29 mai 2009 à 18:14
Salut Taf !

Ce que tu veux c'est pouvoir écrire une valeur entière sous forme hexadécimale dans ton code ?

DimvarHexAs Byte = &H20
DimvarByteAs Byte = 32

Ici, varHex et varByte sont égales mais on indique au compilateur que varHex est initialisée avec un entier noté en hexadécimal grâce à '&H' placé devant la valeur.

En fait il n'y à pas de variable de type "Hexadécimal", mes deux variables sont de type Byte et pas de type hexadécimal... On aurait d'ailleurs pu les instancier avec les types Integer, Long ou Decimal avec ces même valeurs !

Voici deux fonctions de convertions qui peuvent te servir :

1) D'une chaine représentant une valeur hexadécimale en Integer :
    Dim IntFromHexString As Integer = System.Convert.ToInt32("20", 16 )
    IntFromHexStringvaut 32.

2)D'un Integer en chaine représentant une valeur hexadécimale :
    Dim hexStringFromInt As String = Hex(32)
    hexStringFromInt vaut "20"

Voilà, j'espère avoir répondu à ta question...
Bonne continuation !
++
0
sturtrid Messages postés 133 Date d'inscription dimanche 20 mai 2007 Statut Membre Dernière intervention 13 juillet 2012 1
29 mai 2009 à 18:15
Oups, j'étais parti sans réactualiser la page...
Donc un peut tard pour les explications !

++
0
taf06 Messages postés 18 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 15 février 2011
30 mai 2009 à 22:56
slt!
ok merci sturtrid.
0
Rejoignez-nous