注册 登录
编程论坛 VFP论坛

二进制的数字怎么获取?

琅拿度 发布于 2022-11-05 09:30, 912 次点击
我想用二进制表示数字,该用什么命令?比如:

十进制0,二进制是0
十进制1,二进制是1
十进制2,二进制是10
十进制3,二进制是11
十进制4,二进制是100
十进制5,二进制是101
....

请问有这样的命令吗?


4 回复
#2
琅拿度2022-11-05 10:31
找到方法了,目前好像好用的方法只是瓜神的 myfll

?"二进制:"+NumConver(5,2)

应该没有更好的方法了吧
#3
吹水佬2022-11-05 11:14
程序代码:
FOR i=0 TO 255
    ? NumToBin(i)
ENDFOR

FUNCTION NumToBin(num)
    LOCAL i,num,bin
    num = BITAND(num,0xFFFFFFFF)
    bin = ""
    FOR i=31 TO 0 STEP -1
        bin = bin + TRANSFORM(BITAND(BITRSHIFT(num,i),1))
    ENDFOR
    RETURN bin
ENDFUNC
#4
laowan0012022-11-05 14:14
以下是引用琅拿度在2022-11-5 10:31:50的发言:

找到方法了,目前好像好用的方法只是瓜神的 myfll

?"二进制:"+NumConver(5,2)

应该没有更好的方法了吧


已经这样了,还要怎么样呢?
#5
sam_jiang2022-11-06 12:18
我也pose段代码,简单实用
程序代码:

PARAMETERS num
LOCAL nanswer,nremainder,creturn
creturn=""
DO WHILE .t.
    nanswer=INT(num/2)
    nremainder=MOD(num,2)
    IF nanswer>1
        num=nanswer
        creturn=TRANSFORM(nremainder)+creturn
        loop
    ELSE
        IF nanswer<1
            creturn=TRANSFORM(nremainder)+creturn
        ELSE
            creturn=TRANSFORM(nanswer)+TRANSFORM(nremainder)+creturn
        ENDIF
        exit
    ENDIF
ENDDO

creturn=PADL(creturn,32,"0")

RETURN creturn   
1