déclaration variable héxacimale [Résolu]

Signaler
Messages postés
18
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
15 février 2011
-
Messages postés
18
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
15 février 2011
-
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

Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
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
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Rappel :  Long en VB6 = Integer en .Net
Messages postés
18
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
15 février 2011

ok, d'accord, je crois que je vais me servir de la fonction hex();
merci!
Messages postés
133
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
13 juillet 2012
1
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 !
++
Messages postés
133
Date d'inscription
dimanche 20 mai 2007
Statut
Membre
Dernière intervention
13 juillet 2012
1
Oups, j'étais parti sans réactualiser la page...
Donc un peut tard pour les explications !

++
Messages postés
18
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
15 février 2011

slt!
ok merci sturtrid.