【vfp开源代码栏目提醒】:以下是网学会员为您推荐的vfp开源代码-数据转换.prg,希望本篇文章对您学习有所帮助。
*狐寓 http:vfphome.126.com
*
SET TALK off
? DecToHex(95) &&10进制转换16进制
? HexToDec('AB04') &&16进制转换10进制
? DecToBin(100) &&10进制转换2进制
? BinToDec('0111') &&2进制转换10进制
FUNCTION DecToBin &&十进制转二进制
* Converts POSITIVE decimal integers to BIN.
* Input: NUMERIC
* Output: CHAR
PARAMETER InNum
OutStr=SPACE(0)
DO WHILE InNum>0
OutStr=STR(MOD(InNum,2),1,0)+OUTSTR
InNum=INT(InNum/2)
ENDDO
RETURN(OutStr) &&'C'
FUNCTION BinToDec &&二到十 'C'---'N'
* Converts POSITIVE binary numbers (represented by Char) to decimal integer.
* Input: CHAR
* Output: NUMERIC
PARAMETER InStr
PRIVATE ALL LIKE j*
jnLen=LEN(ALLTRIM(InStr))
jnSum=0
FOR nCtr=0 TO jnLen
IF SUBSTR(InStr,jnLen-nCtr,1)='1'
jnSum=jnSum+(2^nCtr)
ENDIF
ENDFOR
RETURN(jnSum)
FUNCTION DecToHex &&十到16进制
* Converts POSITIVE decimal integers to hex (Char).
* Input: NUMERIC
* Output: CHAR
PARAMETER InNum
OutStr=SPACE(0)
DO WHILE InNum>0
OutStr=FindHex(MOD(InNum,16))+OutStr
InNum=INT(InNum/16)
ENDDO
RETURN(OutStr)
FUNCTION FindHex &&16进制的内部函数
* Lookup table for conversion of alpha hex chars.
* Input: NUMERIC
* Output: CHAR
PARAMETERS InVal && Integer
PRIVATE ALL LIKE j*
DO CASE
CASE InVal=10
jOutStr='A'
CASE InVal=11
jOutStr='B'
CASE InVal=12
jOutStr='C'
CASE InVal=13
jOutStr='D'
CASE InVal=14
jOutStr='E'
CASE InVal=15
jOutStr='F'
OTHERWISE
jOutStr=STR(InVal,1,0)
ENDCASE
RETURN(jOutStr)
FUNCTION HexToDec &&16进制到10进制
* This function converts POSITIVE hex (Char) to decimal.
* Input: CHAR
* Output: NUMERIC
PARAMETERS InStr
PRIVATE ALL LIKE J*
InStr=ALLTRIM(InStr)
jLen=LEN(InStr)
nSum=0
rPtr=0
FOR nCtr= 1 TO jLen
cPtr=UPPER(SUBSTR(InStr,jLen-rPtr,1))
DO CASE
CASE cPtr='A'
cPtr='10'
CASE cPtr='B'
cPtr='11'
CASE cPtr='C'
cPtr='12'
CASE cPtr='D'
cPtr='13'
CASE cPtr='E'
cPtr='14'
CASE cPtr='F'
cPtr='15'
ENDCASE
nSum=nSum+(VAL(cPtr) * 16^(nCtr-1))
rPtr=rPtr+1
ENDFOR
RETURN(nSum)