01 : Const BaseString As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
02 : Public Function ChangeNumberBase(ByVal Num As Long, ByVal Base As Byte) As String
03 : On Error Goto Error
04 : If Base > Len(BaseString) Then Base = Len(BaseString)
05 :
06 : Dim tmp As Long
07 : tmp = Num
08 : ChangeNumberBase = ""
09 : Do
10 : ChangeNumberBase = ChangeNumberBase & Mid$(BaseString, (tmp Mod Base) + 1, 1)
11 : tmp = Int(tmp / Base)
12 : If tmp < Base Then
13 : ChangeNumberBase = ChangeNumberBase & Mid$(BaseString, (tmp Mod Base) + 1, 1)
14 : Exit Do
15 : End If
16 : Loop
17 :
18 : ChangeNumberBase = StrReverse$(ChangeNumberBase)
19 :
20 : Exit Function
21 : Error:
22 : ChangeNumberBase = Num
23 : End Function
24 : Public Function ChangeNumber10(ByVal Num As String, ByVal Base As Byte) As Long
25 : On Error Goto Error
26 : If Base > Len(BaseString) Then Base = Len(BaseString)
27 :
28 : Dim tmp1 As String
29 : Dim tmp2 As Long
30 : Dim i As Long
31 : tmp1 = StrReverse$(Num)
32 : ChangeNumber10 = 0
33 : For i = 1 To Len(tmp1)
34 : tmp2 = (InStr(BaseString, Mid$(tmp1, i, 1)) - 1) * Base ^ (i - 1)
35 : ChangeNumber10 = ChangeNumber10 + tmp2
36 : Next
37 :
38 : Exit Function
39 : Error:
40 : ChangeNumber10 = 0
41 : End Function
42 : 'ChangeNumberBasetoBase(문자열, 원래진법, 바꿀진법)
43 : Public Function ChangeNumberBaseToBase(ByVal Num As String, ByVal Base1 As String, ByVal Base2 As String) As String
44 : On Error Goto Error
45 : Dim tmp As Long
46 : tmp = ChangeNumber10(Num, Base1)
47 : ChangeNumberBaseToBase = ChangeNumberBase(tmp, Base2)
48 :
49 : Exit Function
50 : Error:
51 : ChangeNumberBaseToBase = Num
52 : End Function
02 : Public Function ChangeNumberBase(ByVal Num As Long, ByVal Base As Byte) As String
03 : On Error Goto Error
04 : If Base > Len(BaseString) Then Base = Len(BaseString)
05 :
06 : Dim tmp As Long
07 : tmp = Num
08 : ChangeNumberBase = ""
09 : Do
10 : ChangeNumberBase = ChangeNumberBase & Mid$(BaseString, (tmp Mod Base) + 1, 1)
11 : tmp = Int(tmp / Base)
12 : If tmp < Base Then
13 : ChangeNumberBase = ChangeNumberBase & Mid$(BaseString, (tmp Mod Base) + 1, 1)
14 : Exit Do
15 : End If
16 : Loop
17 :
18 : ChangeNumberBase = StrReverse$(ChangeNumberBase)
19 :
20 : Exit Function
21 : Error:
22 : ChangeNumberBase = Num
23 : End Function
24 : Public Function ChangeNumber10(ByVal Num As String, ByVal Base As Byte) As Long
25 : On Error Goto Error
26 : If Base > Len(BaseString) Then Base = Len(BaseString)
27 :
28 : Dim tmp1 As String
29 : Dim tmp2 As Long
30 : Dim i As Long
31 : tmp1 = StrReverse$(Num)
32 : ChangeNumber10 = 0
33 : For i = 1 To Len(tmp1)
34 : tmp2 = (InStr(BaseString, Mid$(tmp1, i, 1)) - 1) * Base ^ (i - 1)
35 : ChangeNumber10 = ChangeNumber10 + tmp2
36 : Next
37 :
38 : Exit Function
39 : Error:
40 : ChangeNumber10 = 0
41 : End Function
42 : 'ChangeNumberBasetoBase(문자열, 원래진법, 바꿀진법)
43 : Public Function ChangeNumberBaseToBase(ByVal Num As String, ByVal Base1 As String, ByVal Base2 As String) As String
44 : On Error Goto Error
45 : Dim tmp As Long
46 : tmp = ChangeNumber10(Num, Base1)
47 : ChangeNumberBaseToBase = ChangeNumberBase(tmp, Base2)
48 :
49 : Exit Function
50 : Error:
51 : ChangeNumberBaseToBase = Num
52 : End Function