将十进制转成二进制,并取第X位

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
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值