2009-09-13 12 views

Respuesta

7

Se podría definir como cadena y luego analizarlo:

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

Usted no lo hace.

VB.NET apoya decimal (sin prefijo), octal (con &O prefijo), y hexadecimal (con &H prefijo) integer literals directamente.

5

Ampliando la respuesta de codymanix ... Usted podría terminar con esto, en una extensión de cuerdas, y añadir la comprobación de tipos ...
algo a lo largo las líneas 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 

Esto permite entonces, cualquier lugar que tenga una cadena de valor binario, dicen "100101100101", que puede hacer:

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

Note que para usar < Extensión >, debe importar System.Runtime.CompilerServices, y se ejecuta en Framework 3.5 o posterior.

+1

Eso se ve muy útil. Me hace desear poder actualizar a 3.5 –

+1

Yah, entre extensiones, LINQ y literales XML, ... 3.5 golpes 2.0! :) – eidylon

3

A partir del 15 de VB.NET ahora hay soporte para los literales binarios:

Dim mask As Integer = &B00101010 

También puede incluir guiones como separadores de dígitos que el número sea más legible sin cambiar el valor:

Dim mask As Integer = &B0010_1010 
Cuestiones relacionadas