Entiers .NET ne sont pas stockées au format décimal, ils sont stockés sous forme binaire dans en complément à deux représentation. Décimales et hexadécimales sont simplement différentes façons de reoresenting le nombre plus humain de manière conviviale.
Si vous voulez sortir un numéro hexadécimal, vous pouvez utiliser le bouton "x" ou "X" spécificateur de format avec la méthode ToString (sortie inférieur et supérieur des cas respectivement) en option avec un nombre fixe de caractères spécifié que "n" où n est le nombre de caractères.
Quelques exemples de la sortie d'un entier hexadécimal:
Dim n asInteger=&HBEEF;
Console.WriteLine(n.ToString("x"))' output in lower case, e.g. beef '
Console.WriteLine(n.ToString("X"))' output in upper case, e.g. BEEF '
Console.WriteLine(n.ToString("X8"))' upper case & 8 chars, e.g. 0000BEEF '
Avez-vous répondre à cette question avant le déjeuner? 🙂 Le documentation ne pas mentionner le côlon et il ne fonctionne pas avec elle, pour moi, en VB2008. Doit être "X8". Fixe. Pas sûr de ce que je pensais... Étonnée qu'il a pris plus d'un an pour quiconque de préavis.
Je pense que vous avez mal compris la manière dont les nombres de travail.
Les nombres eux-mêmes ne sont pas hexadécimal, décimal ou binaire, c'est dans leur représentation, que ce soit dans le code ou dans la mémoire.1
Ce que vous obtenez lorsque vous ajoutez des cinq et cinq, dix, si vous format 10 ou &H0A.
De sorte que ces déclarations sont exactement équivalent:
Dim x AsInteger=16Dim x AsInteger=&H10
À la fois de mettre la même valeur dans la variable.
Si vous voulez plus tard format que la valeur hex, alors vous devriez le faire - par exemple, avec le "x" spécificateur de format. Mais la valeur elle-même n'est pas hexadécimal ou décimal.
Dim y AsInteger=&H23
Console.WriteLine(y)' Prints 35
Console.WriteLine(y.ToString("x"))' Prints 23
EDIT: Si vous vraiment voulez faire cela, vous pouvez toujours créer votre propre structure qui a pris une valeur entière dans son constructeur et emportait ToString la formater dans l'hex. Je voudrais vous recommandons fortement de ne pas faire cela.
1 Certes, la représentation peut considérablement affecter ce que vous pouvez ne avec le nombre et quels sont les résultats que vous obtiendrez - comme on le voit par la différence entre Double et Decimal. Nous allons laisser cela de côté pour le moment.
ce que je veux dire, c'est comment puis-je le conserver sans avoir à en faire toujours Hex(xx) de "convertir" à l'hex quand je le récupérer. Vous ne pouvez pas; il n'est pas basé nombre hexadécimal .NET. Où avez-vous besoin comme hex? Dans le débogueur? Je pense qu'il y est un débogueur option quelque part. Pour la mise en forme d'une chaîne, vous devez utiliser la mise en forme standard routines.
Si vous stocker une valeur dans une variable, il ne devra être ni de virgule ni forme hexadécimale. Finalement, il se retrouve dans votre ordinateur RAM sous forme binaire. À l'ordinateur, le nombre décimal 17 et hexadécimal &H11 sont identiques. La différence est purement lexicale et disparaît une fois que le compilateur a fait son travail.
Si vous souhaitez conserver une valeur de représentation sous forme hexadécimale, vous avez besoin de stocker une chaîne de caractères.
Entiers .NET ne sont pas stockées au format décimal, ils sont stockés sous forme binaire dans en complément à deux représentation. Décimales et hexadécimales sont simplement différentes façons de reoresenting le nombre plus humain de manière conviviale.
Si vous voulez sortir un numéro hexadécimal, vous pouvez utiliser le bouton "x" ou "X" spécificateur de format avec la méthode ToString (sortie inférieur et supérieur des cas respectivement) en option avec un nombre fixe de caractères spécifié que "n" où n est le nombre de caractères.
Quelques exemples de la sortie d'un entier hexadécimal:
Le documentation ne pas mentionner le côlon et il ne fonctionne pas avec elle, pour moi, en VB2008. Doit être "X8".
Fixe. Pas sûr de ce que je pensais... Étonnée qu'il a pris plus d'un an pour quiconque de préavis.
OriginalL'auteur Greg Beech
Je pense que vous avez mal compris la manière dont les nombres de travail.
Les nombres eux-mêmes ne sont pas hexadécimal, décimal ou binaire, c'est dans leur représentation, que ce soit dans le code ou dans la mémoire.1
Ce que vous obtenez lorsque vous ajoutez des cinq et cinq, dix, si vous format 10 ou &H0A.
De sorte que ces déclarations sont exactement équivalent:
À la fois de mettre la même valeur dans la variable.
Si vous voulez plus tard format que la valeur hex, alors vous devriez le faire - par exemple, avec le "x" spécificateur de format. Mais la valeur elle-même n'est pas hexadécimal ou décimal.
EDIT: Si vous vraiment voulez faire cela, vous pouvez toujours créer votre propre structure qui a pris une valeur entière dans son constructeur et emportait
ToString
la formater dans l'hex. Je voudrais vous recommandons fortement de ne pas faire cela.1 Certes, la représentation peut considérablement affecter ce que vous pouvez ne avec le nombre et quels sont les résultats que vous obtiendrez - comme on le voit par la différence entre
Double
etDecimal
. Nous allons laisser cela de côté pour le moment.Hex(xx)
de "convertir" à l'hex quand je le récupérer.Vous ne pouvez pas; il n'est pas basé nombre hexadécimal .NET.
Où avez-vous besoin comme hex? Dans le débogueur? Je pense qu'il y est un débogueur option quelque part. Pour la mise en forme d'une chaîne, vous devez utiliser la mise en forme standard routines.
OriginalL'auteur Jon Skeet
Si vous stocker une valeur dans une variable, il ne devra être ni de virgule ni forme hexadécimale. Finalement, il se retrouve dans votre ordinateur RAM sous forme binaire. À l'ordinateur, le nombre décimal
17
et hexadécimal&H11
sont identiques. La différence est purement lexicale et disparaît une fois que le compilateur a fait son travail.Si vous souhaitez conserver une valeur de représentation sous forme hexadécimale, vous avez besoin de stocker une chaîne de caractères.
OriginalL'auteur stakx
EDIT: Vous pouvez stocker l'expression en tant que string & utiliser
Int.Parse
ou de tout autreParse
ouTryParse
méthode, si ça peut aider.OriginalL'auteur shahkalpesh