发信人: foxzz()
整理人: foxzz(2002-12-22 08:32:31), 站内信件
|
*!**********************
proc quwei
PARA P_SQUWEI
LOCAL M_ADDVFALUE
M_ADDVFALUE=HexToDec("A1")
LOCAL M_LHIGH_10,M_LLOW_10
M_LHIGH_10=VAL(LEFT(P_SQUWEI,2))-1+M_ADDVFALUE
M_LLOW_10=VAL(SUBSTR(P_SQUWEI,3,2))-1+M_ADDVFALUE
LOCAL M_SHIGH_16,M_SLOW_16
M_SHIGH_16=DecToHex(M_LHIGH_10)
M_SLOW_16=DecToHex(M_LLOW_10)
LOCAL M_SALL_16
M_SALL_16=M_SHIGH_16+M_SLOW_16
LOCAL M_LALL_10
M_LALL_10=HexToDec(M_SALL_16)
LOCAL M_CHR_LALL_10
M_CHR_LALL_10=CHR(M_LALL_10)
RETURN M_CHR_LALL_10
*!******************************
FUNCTION HexToDec
PARA p_hexnum
p_hexnum=ALLTRIM(p_hexnum)
m_lenhex=LEN(p_hexnum)
m_decnum=0
m_strnum=0
FOR m_i= 1 TO m_lenhex
m_trnstr=SUBSTR(p_hexnum,m_lenhex-m_strnum,1)
m_trnstr=upper(m_trnstr)
DO CASE
CASE m_trnstr='A'
m_trnstr='10'
CASE m_trnstr='B'
m_trnstr='11'
CASE m_trnstr='C'
m_trnstr='12'
CASE m_trnstr='D'
m_trnstr='13'
CASE m_trnstr='E'
m_trnstr='14'
CASE m_trnstr='F'
m_trnstr='15'
ENDCASE
m_decnum=m_decnum+(VAL(m_trnstr) * 16^(m_i-1))
m_strnum=m_strnum+1
ENDFOR
RETURN m_decnum
*!*********************************
FUNCTION DecToHex
PARAMETER p_decnum
local m_hexnum,m_hexstr,m_string
m_hexnum=0
m_hexstr=""
m_string=""
DO WHILE p_decnum > 0
m_hexnum=mod(p_decnum,16)
DO CASE
CASE m_hexnum=10
m_string='A'
CASE m_hexnum=11
m_string='B'
CASE m_hexnum=12
m_string='C'
CASE m_hexnum=13
m_string='D'
CASE m_hexnum=14
m_string='E'
CASE m_hexnum=15
m_string='F'
OTHERWISE
m_string=STR(m_hexnum,1,0)
ENDCASE
m_hexstr=m_string+m_hexstr
p_decnum=INT(p_decnum/16)
ENDDO
RETURN m_hexstr
|
|