压缩bcd码0225转换成10进制数如何转换?

学习 时间:2026-03-30 11:03:33 阅读:887
压缩bcd码0225转换成10进制数如何转换?请哪为高手帮忙把0225这个BCD码处理成10进制的,也请把过程黏贴上!

最佳回答

欢喜的镜子

忧郁的世界

2026-03-30 11:03:33

这个应该比较简单的,不过以前不是用vc实现的。
如果确定发过来是每个字节都是bcd 。有时候也不用print那么麻烦
直接用数组完成。
比如接受到20个字节。你直接申请 41字节的数组就好了。
自己写一个转化函数。每个字节,
buf[0] = dat / 10 + '0';
buf[1] = dat % 10 + '0';
这样自己写一个函数,然后把弄好的字符串 des_buf显示一下就好了
void cov(char *buf, char *des_buf, int num)
{
while (num--) {
*des_buf++ = *buf / 10 +'0';
*des_buf++ = *buf++ % 10 +'0';
}
}
至于你说的每次串口存文件。看你要存的是字符串文件还是 BCD码文件
不过都一样。新建立一个文件。放进去就好了。反正两个的数组都在上面了。也不麻烦。
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。

最新回答共有2条回答

  • 懵懂的大树
    回复
    2026-03-30 11:03:33

    这个应该比较简单的,不过以前不是用vc实现的。如果确定发过来是每个字节都是bcd 。有时候也不用print那么麻烦直接用数组完成。比如接受到20个字节。你直接申请 41字节的数组就好了。自己写一个转化函数。每个字节,buf[0] = dat / 10 + '0';buf[1] = dat % 10 + '0';这样自己写一个函数,然后把弄好的字符串 des_buf显示一下就好了void cov(char *buf, char *des_buf, int num){while (num--) {*des_buf++ = *buf / 10 +'0';*des_buf++ = *buf++ % 10 +'0';}}至于你说的每次串口存文件。看你要存的是字符串文件还是 BCD码文件不过都一样。新建立一个文件。放进去就好了。反正两个的数组都在上面了。也不麻烦。我可以帮助你,你先设置我最佳答案后,我百度Hii教你。

上一篇 麻烦帮忙查一篇作文.我的好老师.六bai字.描写的是人物.

下一篇 得与失的议论文素材就是舍弃掉一些东西才能得到一些东西想得到 一些东西就必须先舍弃一些东西举一些名人的事例