2-36进制之间的随意转换函数

'------------------------------2-36进制之间的随意转换函数---------------------------------------
'也不知道有没有36进制,呵呵,可能是我自己编出来的吧。
'36进制概念,11相当与A,12相当与B,…………35相当与Z。只到在大写的A--Z之间。小写没加判断。
'到用的时候再加吧。时间关系,少写了很多的限制。
'感觉用来加密也不错。呵呵
'-----------------------------------------------------------------------------------------------


'x为需要转换的数,m为未转换以前的进制,n为转换后的进制
Function zh(x As String, m As Integer, n As Integer) As String
Dim temp As Long
Dim zht() As String
Dim total As Integer

Dim mmid As String

If n > 36 Then
    MsgBox "本函数最多支持36进制的转换"
    Exit Function
End If
If m = 10 Then
    temp = CLng(x)
   
    Do
        total = total + 1
        temp = Int(temp / n)
    Loop Until temp = 0
   
    ReDim zht(total)
    temp = CLng(x)
    total = 0
   
    Do
        total = total + 1
        zht(total) = temp Mod n
        temp = Int(temp / n)
    Loop Until temp = 0
   
    For I = total To 1 Step -1
    zh = zh & sz(CStr(zht(I)))
    Next I
Else
    For I = Len(x) To 1 Step -1
        mmid = Mid(x, Len(x) - I + 1, 1)
        If mmid = "1" Or mmid = "2" Or mmid = "3" Or mmid = "4" Or mmid = "5" Or mmid = "6" Or mmid = "7" Or mmid = "8" Or mmid = "9" Then
            total = total + CInt(mmid) * m ^ (I - 1)
        Else
            total = total + (Asc(mmid) - 55) * m ^ (I - 1)
        End If
    Next I
    zh = zh(CStr(total), 10, n)
End If

End Function

'将大于9的数转换成A---Z
Function sz(y As String) As String
If CInt(y) > 9 Then
    sz = Chr(CInt(y) + 55)
Else
    sz = y
End If
End Function

Private Sub Command1_Click()
Dim b, c As Integer
Dim a As String

a = CStr(InputBox("输入要转换的数"))
b = CInt(InputBox("输入此数当前的进制状态"))
c = CInt(InputBox("输入转换后的进制状态"))
MsgBox CStr(b) + " 进制数:" + a + " 转换成 " + CStr(c) + "进制数为:" + zh(a, CInt(b), c)
End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金蝶高级实施顾问

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值