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

taf06 18 Messages postés jeudi 16 avril 2009Date d'inscription 15 février 2011 Dernière intervention - 29 mai 2009 à 15:02 - Dernière réponse : taf06 18 Messages postés jeudi 16 avril 2009Date d'inscription 15 février 2011 Dernière intervention
- 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.
Afficher la suite 

8 réponses

Répondre au sujet
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 29 mai 2009 à 17:11
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Mayzz
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 29 mai 2009 à 16:47
0
Utile
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
Commenter la réponse de Mayzz
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 29 mai 2009 à 16:52
0
Utile
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)
Commenter la réponse de cs_Jack
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 29 mai 2009 à 16:54
0
Utile
Rappel :  Long en VB6 = Integer en .Net
Commenter la réponse de cs_Jack
taf06 18 Messages postés jeudi 16 avril 2009Date d'inscription 15 février 2011 Dernière intervention - 29 mai 2009 à 17:30
0
Utile
ok, d'accord, je crois que je vais me servir de la fonction hex();
merci!
Commenter la réponse de taf06
sturtrid 133 Messages postés dimanche 20 mai 2007Date d'inscription 13 juillet 2012 Dernière intervention - 29 mai 2009 à 18:14
0
Utile
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 !
++
Commenter la réponse de sturtrid
sturtrid 133 Messages postés dimanche 20 mai 2007Date d'inscription 13 juillet 2012 Dernière intervention - 29 mai 2009 à 18:15
0
Utile
Oups, j'étais parti sans réactualiser la page...
Donc un peut tard pour les explications !

++
Commenter la réponse de sturtrid
taf06 18 Messages postés jeudi 16 avril 2009Date d'inscription 15 février 2011 Dernière intervention - 30 mai 2009 à 22:56
0
Utile
slt!
ok merci sturtrid.
Commenter la réponse de taf06

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.