【vfp开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了vfp开源代码-bit.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)