2009-09-13 15 views

Répondre

7

Vous pouvez le définir comme chaîne, puis l'analyser:

myBin = Convert.ToInt32("1010101010", 2) 
5

Vous n'en avez pas.

VB.NET prend en charge les décimales (sans préfixe), octal (avec préfixe &O), et hexadécimal (avec préfixe &H) integer literals directement.

5

L'expansion sur la réponse codymanix ... Vous pouvez envelopper ceci dans une extension sur les chaînes, et ajouter une vérification de type ...
quelque chose le long les lignes de:

<Extension> Public Function ParseBinary(target As String) As Integer 
    If Not RegEx.IsMatch(target, "^[01]+$") Then Throw New Exception("Invalid binary characters.") 

    Return Convert.ToInt32(target, 2) 
End Function 

Ceci permet alors, partout où vous avez une chaîne de valeur binaire, dire « 100.101.100.101 », vous pouvez le faire:

Dim val As Integer = "100101100101".ParseBinary() 

Notez que pour utiliser <Extension>, vous devez importer System.Runtime.CompilerServices et en cours d'exécution sur le Framework 3.5 ou version ultérieure.

+1

Cela semble vraiment utile. Je souhaite que je puisse passer à la version 3.5 –

+1

Yah, entre Extensions, LINQ et les littéraux XML, ... 3.5 blows away 2.0! :) – eidylon

3

Au VB.NET 15 prennent désormais en charge pour les littéraux binaires:

Dim mask As Integer = &B00101010 

Vous pouvez également inclure comme séparateurs de underscores chiffres pour rendre le nombre plus lisible sans changer la valeur:

Dim mask As Integer = &B0010_1010