Imports System.Text.RegularExpressions
Module Module1
Sub Main()
Console.WriteLine(binary(16380, "binary(值,1)"))
Console.ReadKey()
End Sub
''' <summary>
''' 处理十进制转二进制取值函数
''' </summary>
''' <param name="CurrentValue">当前值</param>
''' <param name="formula">表达式</param>
''' <returns></returns>
Public Function binary(ByVal CurrentValue As String, ByVal formula As String) As String
If formula.Contains("binary(") = False Then
Return formula '如果未发现二进制转换函数返回表达式
End If
Dim mc = System.Text.RegularExpressions.Regex.Matches(formula, "binary\((.+?)\)", RegexOptions.IgnoreCase)
If mc.Count > 0 Then
For Each m As Match In mc
Dim param As String = m.Value.Substring(7, m.Value.Length - 8)
Dim value = param.Split(",")(2) '"值,16"
Dim tmp = Convert.ToString(CInt(CurrentValue), 2).PadLeft(16, "0")
formula = formula.Replace(m.Value, tmp(param.Split(",")(1) - 1))
Next
End If
Return formula
End Function
End Module
本文介绍了一个用VB.NET编写的函数,该函数可以将十进制数转换为二进制数,并从指定位置取值。通过使用正则表达式,函数能够解析并替换表达式中的二进制转换请求。
2128

被折叠的 条评论
为什么被折叠?



