(2-16)进制字符串转换为十进制正整数。
6 o$ }1 N+ e" Z 思路:R进制数每位数字乘以权值之和即为十进制数。
^% }1 R r4 @- H 算法实现:
. |, }+ B& R0 i以下是引用片段:8 R1 \( _# t3 f$ Y
Private Function Tran(ByVal s As String, ByVal r As Integer) As integer : p+ B: K, d! m/ K
Dim n As Integer, dec As Integer 6 a% Z! l/ W% ~( ~2 {, Y
s = UCase(Trim(s)) - j5 Z! L) [" Y/ [% C
For i% = 1 To Len(s)
+ d( W- t& }" K9 `6 s2 I If Mid(s, i, 1) >= "A" Then + V7 v) C" T% F: G
n = Asc(Mid(s, i, 1)) - Asc("A") + 10
0 Z" X1 h1 A) Z! Q Else 4 r( E! ?% @, T# B+ B2 {+ }& g
n = Val(Mid(s, i, 1))
% x7 G5 c* X8 ` End If
3 g( c: F/ P, g! k/ D dec = dec + n * r ^ (Len(s) - i) 8 t0 E" O# K& T% P, x p
Next i / r P) P6 _* A2 D
Tran = dec ( g' m0 m2 d! y3 ~# x3 }0 d# V
End Function |