【vfp开源代码栏目提醒】:本文主要为网学会员提供BinToInt.PRG,希望对需要BinToInt.PRG网友有所帮助,学习一下!
PARAMETER cBinary &&接收参数
IF VARTYPE(cBinary)#"C" OR EMPTY(cBinary) &&验证是否为字符型并不为空
RETURN -1
ENDIF
LOCAL nOutInt,nLen,i,cCutString
cBinary=ALLTRIM(cBinary) &&删除头尾空格
nLen=LEN(cBinary) &&获得字符长度
nOutInt=0 &&初始化输出数值变量
cCutString="" &&初始化每次截取的字符变量
FOR i = 0 TO nLen-1 &&从第0位开始截取计算
cCutString=SUBSTR(cBinary,nLen-i,1)
IF INLIST(cCutString,"0","1")=.T. &&判断是否为二进制数
nOutInt=nOutInt+(2^i)*VAL(cCutString) &&2的幂*二进制数的对应位数值
ELSE
RETURN -1
ENDIF
ENDFOR
RETURN INT(nOutInt)