For i = Len(s) To 1 Step -1 '从右往左循环
'也可以让i从1循环到Len(s)(即从左往右),但倒着循环可以使Mid函数写法简便
p = Mid(s, i, 1) '取出第i位
q = Val(p) '如果p是数字,就直接转换(其实不需要写转换函数,直接 q = p 也行)
q = Asc(p) - 55 '否则(即p是字母),取p的ASCII码减去55
'(实际上是减去字母A的ASCII码65再加上10,化简得减55)
k = k + 1 '权值加1;也可以写成 k = Len(s) - i + 1,即权值与数字位置是有对应关系的
'(换句话说变量k其实是多余的
![[滑稽]](/static/emoticons/u6ed1u7a3d.png)
)
change = sum '同理这里也不需要写转换函数(不管函数类型是啥,这样写通吃);
'如果要转换,就写成 change = CStr(sum)