完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一个16位二进制值,我需要转换为BCD。我使用下面的函数,但是转换很慢,导致显示为blink.void binary_to_bcd(无符号的char*string,UINT16 x){int temp1;UINT16 tval;for(temp1=4,tval=x;temp1>0;){temp1--;*string=tval%10;*tval/=10;string+;}我发现按照下面的算法,但我不知道如何设置数组。for(i=0;i<8;i++){//检查每列{if(列>=5)列+=3;//将所有二进制数字左移100d<=1;100ds[0]=Tens[3];Tens<=1;0 ]=1(3);1和lt;=1;0(= 0)=二进制[7 ];二进制& lt;lt;=1;}此代码缺少括号。我很感激一些方向。谢谢。
|
|
相关推荐
5个回答
|
|
%DEITY%只知道代码试图做什么,但是基本的算法,称为“双Dabble”,是从二进制数中取出MSB开始的位,然后左移到变量中,该变量将成为已打包的BCD数。在每个位被移位之后,BCD号码中的每个小数点都必须被校正,从最右边开始,如果小数点在5或5以上,则从最右边加上3,这样就可以修复二进制数和BCD之间的差异,从而进行下一个移位。对于大的N,需要移位和BCD数字的数目与比特数成比例,执行时间按N2表示,其中N是比特数。
|
|
|
|
我们最近在同一个问题上有一个疯狂的话题。无法找到它,因为已经有60多篇博文了。找到另一个链接:https://en.wikipedia.org/wiki/._dabble#C_implementation根据链接中的算法将二进制文件转换为一串BCD数字。向每个BCD数字.printf t添加'0'的偏移量。他用绳子代替长条,这就意味着你真的长了64英寸。OTHH此转换适用于任意数量的位。
|
|
|
|
不可能成为世界上所有论坛的成员。这将有助于在论坛内有一个稍微强大的搜索功能。或者更长的历史,但是“帖子我的帖子”出现了。
|
|
|
|
我在这里发布了一个基于数组的双重涉猎的实现。这种方法适用于任何大小的二进制输入。注意,对于每个n位输入,都有INT(1+n*LOG(2))*4位输出,或者多输出大约30%。
|
|
|
|
内置搜索是可悲的。试试Google:
|
|
|
|
只有小组成员才能发言,加入小组>>
5170 浏览 9 评论
2001 浏览 8 评论
1931 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3176 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2228 浏览 5 评论
737浏览 1评论
622浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
509浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
635浏览 0评论
531浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 22:12 , Processed in 1.102301 second(s), Total 57, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号