VBA是这么干的
Public Function Num10toN(ByVal Num As Long, Optional ByVal N As Long = 16, Optional ByVal AddNum As Long = 0) As String
Dim I As Long, J As Long, K As Long
If N < 2 Or N > 36 Then Exit Function
If N + AddNum > 36 Then Exit Function
If Num = 0 Then
Num10toN = "0"
Exit Function
End If
Static FirstRun As Boolean
Static NumChar(0 To 35) As String * 1
If FirstRun = False Then
For I = 0 To 9
NumChar(I) = CStr(I)
Next I
For I = 0 To 25
NumChar(I + 10) = Chr(Asc("A") + I)
Next I
FirstRun = True
End If
Dim TempNum As Long
Dim TempStr As String
TempNum = Num And &H7FFFFFFF '不考虑符号位
TempStr = Space(Log(Num) / Log(N) + 1)
I = Len(TempStr)
Do While TempNum > 0
J = TempNum Mod N
Mid(TempStr, I, 1) = NumChar(J + AddNum)
I = I - 1
TempNum = (TempNum - J) \ N
Loop
I = I + 1
If N = 26 And AddNum = 10 And Num >= 26 Then Mid(TempStr, I) = Chr(Asc(Mid(TempStr, I)) - 1)
Num10toN = Mid(TempStr, I)
End Function