/*===================二进制转十六进制函数gf_bintohex=====================
函数名:gf_bintohex
参数说明:
string类型 1、s_bin 二进制字符串
注意事项:
功能:将二进制字符串转换为十六进制字符串。
返回值:十六进制的字符串。非法二进制字符串返回-1;空串返回Null
作者:费贤智
日期:2005/2/4
=======================================================================*/
int li_slen,li_loop,li_mod
string s_hex
if upper(left(s_bin,1))='B' then s_bin=mid(s_bin,2)
li_slen=len(s_bin)
li_mod=mod(li_slen,4)
choose case li_mod
case 1
s_bin='000'+s_bin
case 2
s_bin='00'+s_bin
case 3
s_bin='0'+s_bin
end choose
for li_loop=1 to li_slen step 4
choose case mid(s_bin,li_loop,4)
case '0000'
s_hex=s_hex+'0'
case '0001'
s_hex=s_hex+'1'
case '0010'
s_hex=s_hex+'2'
case '0011'
s_hex=s_hex+'3'
case '0100'
s_hex=s_hex+'4'
case '0101'
s_hex=s_hex+'5'
case '0110'
s_hex=s_hex+'6'
case '0111'
s_hex=s_hex+'7'
case '1000'
s_hex=s_hex+'8'
case '1001'
s_hex=s_hex+'9'
case '1010'
s_hex=s_hex+'A'
case '1011'
s_hex=s_hex+'B'
case '1100'
s_hex=s_hex+'C'
case '1101'
s_hex=s_hex+'D'
case '1110'
s_hex=s_hex+'E'
case '1111'
s_hex=s_hex+'F'
case else
return "-1"
exit
end choose
next
return 'H'+s_hex