【www.gdgbn.com--其它】

好象这两天论坛里有几个都是有关不同进位数之间的互换问题,今天有空就给大家写两个函数出来,希望能抛砖引玉。
这两个函数可以使 [小于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 是原数的进位值。

本文来源:http://www.gdgbn.com/luyouqishezhi/3839/