一聚教程网:一个值得你收藏的教程网站

热门教程

十进位和其它进位数互换的函数

时间:2022-06-30 11:21:15 编辑:袖梨 来源:一聚教程网

好象这两天论坛里有几个都是有关不同进位数之间的互换问题,今天有空就给大家写两个函数出来,希望能抛砖引玉。
这两个函数可以使 [小于36进位的数] 和 [十进位数]相互转换,从而使得[小于36进位数]的不同进位数间实现转换,现将它们写在下面:
<%
'说明:合并使用和以转化不同位数之间的转化
'****************** 转换成十进位函数 ******************
'--------------说明部分--------------------------------
'[功能] 小于36进位的数 ---转换成---> 十进位 的函数
'[说明]
'Binary 是原数,十进位以上的数一定要是字符串,其它的都可以。
'H 是原数的进位值。
'引用 Decimal(Binary,H)
'--------------函数部分--------------
function Decimal(Binary,H)
'分解成整数和小数两部分来分别处理
L = Split(Binary,".")
For i = 0 to Ubound(L)
For ii = 1 to Len(L(i))
'处理整数部分
Power = ii-1
cLen = Len(L(i))-ii+1
'处理小数部分
If i = 1 then
Power = -ii
cLen = ii
End if
'取得位数值
Bin = Mid(L(i),cLen,1)
'处理10进以上进位
if isNumeric(Bin) = False then
Bin = Asc(UCase(Bin))-55
end if
'逐位幂运算并累加结果
Dec = Dec + Bin*H^(Power)
Next
Next
'输出最终值
Decimal = Dec
end function
'--------------例子1--------------------
'例子1 (二进位转换成十进位):
Num = 1011.01 '原数
H = 2 '原来的进位数
Response.Write Decimal(Num,H) '引用函数
'输出结果是 11.25 (十进位)
'--------------例子2--------------------
'例子2 (十六进位转换成十进位):
Num = "a0.8" '原数
H = 16 '原来的进位数
Response.Write Decimal(Num,H) '引用函数
'显示结果是 160.5 (十进位)
'****************** 转换成其它进位 ******************
'--------------说明--------------------------------
'[功能:]十进位 ---转换成---> 小于36进位的数 的函数
'[说明:]
'Decimal是原数,十进位以上的数是以字符串形式输出。
'H 是原数的进位值。

热门栏目