发信人: 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  
  | 
 
 
 |