如何在VB.NET中键入文字二进制文件?

Rob*_*cks 8 vb.net binary literals

你如何在VB.NET中输入二进制文字?

&HFF          // literal Hex -- OK
&b11111111    // literal Binary -- how do I do this?
Run Code Online (Sandbox Code Playgroud)

cod*_*nix 9

您可以将其定义为字符串,然后解析它:

myBin = Convert.ToInt32("1010101010", 2)
Run Code Online (Sandbox Code Playgroud)


Dar*_*ren 8

从VB.NET 15开始,现在支持二进制文字:

Dim mask As Integer = &B00101010
Run Code Online (Sandbox Code Playgroud)

您还可以将下划线包含为数字分隔符,以使数字更易读,而无需更改值:

Dim mask As Integer = &B0010_1010
Run Code Online (Sandbox Code Playgroud)


eid*_*lon 7

扩展codymanix的答案......你可以将它包装在字符串上的扩展中,并添加类型检查......
以下内容:

<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
Run Code Online (Sandbox Code Playgroud)

这允许在任何你有二进制值字符串的地方,例如"100101100101",你可以这样做:

Dim val As Integer = "100101100101".ParseBinary()  
Run Code Online (Sandbox Code Playgroud)

请注意,要使用<Extension>,必须导入System.Runtime.CompilerServices,并在Framework 3.5或更高版本上运行.

  • 看起来很有用。让我希望我可以升级到3.5 (2认同)
  • 是的,在Extensions,LINQ和XML文字之间,... 3.5让2.0黯然失色!:) (2认同)

Meh*_*ari 6

你没有.

VB.NET直接支持十进制(不带前缀),八进制(带&O前缀)和十六进制(带&H前缀)整数文字.