Comment tapez-vous les littéraux binaires dans VB.NET?Comment puis-je taper littéral binaire dans VB.NET?
&HFF // literal Hex -- OK
&b11111111 // literal Binary -- how do I do this?
Comment tapez-vous les littéraux binaires dans VB.NET?Comment puis-je taper littéral binaire dans VB.NET?
&HFF // literal Hex -- OK
&b11111111 // literal Binary -- how do I do this?
Vous pouvez le définir comme chaîne, puis l'analyser:
myBin = Convert.ToInt32("1010101010", 2)
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.
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.
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
Cela semble vraiment utile. Je souhaite que je puisse passer à la version 3.5 –
Yah, entre Extensions, LINQ et les littéraux XML, ... 3.5 blows away 2.0! :) – eidylon