VB常用算法(四)進制轉(zhuǎn)化

字號:

1、算法說明
    1) 十進制正整數(shù)m轉(zhuǎn)換為R(2-16)進制的字符串。
     思路: 將m不斷除r取余數(shù),直到商為0,將余數(shù)反序即得到結(jié)果。
     算法實現(xiàn):
    Private Function Tran(ByVal m As Integer, ByVal r As Integer) As String
     Dim StrDtoR As String, n As Integer
     Do While m <> o
     n = m Mod r
     m = m \ r
     If n > 9 Then
     StrDtoR = Chr(65 + n - 10) & StrDtoR
     Else
     StrDtoR = n & StrDtoR
     End If
     Loop
     Tran = StrDtoR
    End Function
    2) R(2-16)進制字符串轉(zhuǎn)換為十進制正整數(shù)。
     思路:R進制數(shù)每位數(shù)字乘以權(quán)值之和即為十進制數(shù)。
     算法實現(xiàn):
    Private Function Tran(ByVal s As String, ByVal r As Integer) As integer
     Dim n As Integer, dec As Integer
     s = UCase(Trim(s))
     For i% = 1 To Len(s)
     If Mid(s, i, 1) >= "A" Then
     n = Asc(Mid(s, i, 1)) - Asc("A") + 10
     Else
     n = Val(Mid(s, i, 1))
     End If
     dec = dec + n * r ^ (Len(s) - i)
     Next i
     Tran = dec
    End Function