我用PB,给你一个PB的函数:
//将十六进制数字符串转换为十进制数
//l_string:外部转入的处理字符串
int i
int l_lengthstring l_char,inverse_l_char,l_char_s
string inverse_l_string
long layout_int,l_char_intl_length=len(l_string)
l_char_s=left(l_string,1)//若最高位为大于8的数字(则其对应的数字为负数),对各位进行取反操作
if l_char_s>'8' then
for i=1 to l_length
l_char=mid(l_string,i,1)
if l_char>'9' then
inverse_l_char=asc_to_char(5 - (asc(l_char) - 65)+48)
else
if l_char>'5' then
inverse_l_char=asc_to_char(15 - (asc(l_char) - 48)+48)
else
inverse_l_char=asc_to_char(15 - (asc(l_char) - 48)+55)
end if
end ifinverse_l_string=inverse_l_string+inverse_l_char //inverse_l_string为生成的反码
next
l_string=inverse_l_string
end iffor i=1 to l_length //将十六进制数字符串转换为十进制数
l_char=mid(l_string,i,1)
if l_char>'9' then
l_char_int=asc(l_char)-65+10
else
l_char_int=asc(l_char)-48
end if
layout_int=l_char_int*16^(l_length - i)+layout_int
nextif l_char_s>'8' then
layout_int= - (layout_int+1) //若为负数,对转换的十进制数加1,取负
end ifreturn layout_int //返回十进制数