加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

十进制转二进制VFP代码

(2017-07-12 10:50:39)
标签:

vfp

二进制

十进制

转换

钱一飞

分类: 电脑教程
**十进制转二进制
clear
?"本程序将十进制转换为二进制"
accept "请输入十进制的数(如125.32)" to n
?n
s=""   &&定义S为字符
ws=at(".",n)  &&计算小数点的位数
zsws=ws-1   &&计算整数部分的位数
aa=left(n,zsws)  &&取出整数字符
bb=val(aa)   &&整数字符转数值

do while bb>0
  ff=bb%2   && ff就是余数,二进制码是十进制除以2取余
  bb=int(bb/2)  && bb折半减小并舍弃小数
  s=alltrim(str(ff))+s  &&字符累加,ff要转为字符并去除空格
enddo
&&??"转换为二进制为:",s  && s累加后就是二进制码,s是字符串

weishu=at(".",n)  &&计算前字符在后字符串的位置
a=len(n)  &&字符串总长度
b=weishu
c=a-b   &&计算有几位小数
e=right(n,c)   &&把小数部分截取出来,是字符 
f=val(e)  &&转换为数值,整数
g=f*10^(-c)  &&转为小数

i=1
k=""
do while i<=10   &&二进制小数的位数保留10位
g=g*2   &&十进制小数转二进制的方法:乘2取整
if g<1
h=0
else
h=1
g=g-1  &&取整
endif
i=i+1  &&保证可以退出循环
k=k+allt(str(h))
enddo
&&?k
??"转换为二进制为:"  +s   +"."   +k
&&请帮助优化代码,谢谢!


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有