(2-16)进制字符串转换为十进制正整数。) \6 ?( T6 K, W$ q
思路:R进制数每位数字乘以权值之和即为十进制数。- E( P/ Z. x2 O3 D2 A
算法实现:
& O- x' q* O( n以下是引用片段:
# t+ t3 D! _4 [0 P& I# M3 Y9 a Private Function Tran(ByVal s As String, ByVal r As Integer) As integer
9 |+ n; ]& S7 J1 C Dim n As Integer, dec As Integer " y2 m7 F4 ^1 `- ^, P [- V6 N. W
s = UCase(Trim(s))
4 d; s( t/ _" _2 L For i% = 1 To Len(s)
8 Q1 I( a/ [9 `$ e( Z6 m If Mid(s, i, 1) >= "A" Then
$ G# H+ j( {) a( g4 O& @ n = Asc(Mid(s, i, 1)) - Asc("A") + 10 - N: W0 T7 [- k( `+ |4 Z& E/ m% I' Z
Else 1 w* A, n$ ]' e6 P0 F4 U
n = Val(Mid(s, i, 1))
/ b: c, |5 b" `9 t3 c% z End If 3 m6 m4 }9 V1 A0 m! w( H1 C7 Y9 C2 ]/ V
dec = dec + n * r ^ (Len(s) - i)
" P6 D6 w8 Q0 c0 D: s: g0 i Next i , K% ]! D- A8 J8 @' e7 E
Tran = dec ) _+ v4 s C( f/ h
End Function |