VBS 16进制转换10进制
作者:刚子 日期:2010-02-03
程序代码nums="a100"
chn10(nums)
Function chn10(nums)
Dim tmp,tmpstr,i
nums_len=Len(nums)
For i=1 To nums_len
tmp=Mid(nums,i,1)
If IsNumeric(tmp) Then
tmp=tmp * 16 * (16^(nums_len-i-1))
Else
tmp=(ASC(UCase(tmp))-55) * (16^(nums_len-i))
End If
tmpstr=tmpstr+tmp
Next
msgbox tmpstr
End Function
chn10(nums)
Function chn10(nums)
Dim tmp,tmpstr,i
nums_len=Len(nums)
For i=1 To nums_len
tmp=Mid(nums,i,1)
If IsNumeric(tmp) Then
tmp=tmp * 16 * (16^(nums_len-i-1))
Else
tmp=(ASC(UCase(tmp))-55) * (16^(nums_len-i))
End If
tmpstr=tmpstr+tmp
Next
msgbox tmpstr
End Function
下面附上16进制转换10进制的算法:
一、16进制中,A=10,B=11,C=12,D=13,E=14,F=15;
二、计算用各字符分开计算然后求和,方法是字符×16的(位置减1)次方,位置从左边数起。
例子:将 43ED 转换为10进制,
分解为:
D×160=13×160=13
E×161=14×161=224
3×162=3×162=768
4×163=4×163=16384
----------------------------------
合 计: 17389
所以,43ED=17389
评论: 0 | 引用: 0 | 查看次数: -
发表评论
上一篇
下一篇

文章来自:
Tags: