合信论坛

快捷导航
查看: 73|回复: 0

将通讯ASCII数据格式不固定情况下转换成浮点数库

[复制链接]

51

主题

52

帖子

3788

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3788
发表于 4 天前 | 显示全部楼层 |阅读模式
我们在进行例如SOCKET数据或串口的自由口通讯时,通常接收到数据格式为ASCII码的格式,这时我们需要将ASCII码转换提取成需要的数据类型。例如:
1.jpg

ASCII码数据转换成十进制的ASCII码显示值

2.jpg

通过表格我们可以发现ASCII数值和十进制之前相差48,因此我们可以用接收到的数据减去48得到了十进制的ASCII码显示值。
第二步:通过指针寻址实现地址偏移,从需要转换的数据首地址开始,每运算一次后指向下一个地址再次进行运算,一直运算到结束字符(如无结束字符可根据接收字符长度计算)。
第三步:具体运算方法
设定     X初始值为0    Y初始值为1
X每次乘10加上指针指向地址的数值,Y在检测指针寻址检测到小数点开始乘10.
X除以Y得到我们需要的浮点数数据

3.png

这个方法可以有效的解决数据长度不管固不固定情况下都能有效提取出浮点数。

相关程序已封装成库,见附件。

ASCII_R.rar

867 Bytes, 下载次数: 20

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

客服热线
400-700-4858 周一至周五:09:00 - 18:00
深圳市南山区打石一路深圳国际创新谷6栋A座9层

深圳市合信自动化技术有限公司(简称“合信技术”)成立于2003年,高新技术企业,专注于工业自动化产品的研发、生产、销售和技术服务,依靠高质量、高性能的自动化控制产品与方案为客户创造最大价值,立志于成为全球领先的工业自动化解决方案供应商。

Archiver|手机版|小黑屋|COTRUST Inc. ( 粤ICP备13051915号 )

GMT+8, 2025-6-3 02:12 , Processed in 0.179376 second(s), 26 queries .

快速回复 返回顶部 返回列表