OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4372|回复: 1

数据处理字符串:862631039324107如何取出对应数值?

[复制链接]

95

主题

555

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3359
金钱
3359
注册时间
2016-1-7
在线时间
552 小时
发表于 2017-4-18 09:10:22 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 challenger 于 2017-4-18 09:12 编辑

字符串:862631039324107如何取出对应数值?用atof(862631039324107)函数,可以变成浮点数。

然后:

                sn16=atof(862631039324107)/100000000000000;        //取出8
                sn15=atof(862631039324107)/10000000000000-sn16*10; //取出6
                sn14=atof(862631039324107)/1000000000000-sn16*100-sn15*10;//取出2
                sn13=atof(862631039324107)/100000000000-sn16*1000-sn15*100-sn14*10;//取出6
                sn12=atof(862631039324107)/10000000000-sn16*10000-sn15*1000-sn14*100-sn13*10;//取出3
                sn11=atof(862631039324107)/1000000000-sn16*100000-sn15*10000-sn14*1000-sn13*100-sn12*10;//取出1
                sn10=atof(862631039324107)/100000000-sn16*1000000-sn15*100000-sn14*10000-sn13*1000-sn12*100-sn11*10;//取出0
                sn9=atof(862631039324107)/10000000-sn16*10000000-sn15*1000000-sn14*100000-sn13*10000-sn12*1000-sn11*100-sn10*10;        //取出3



               。。。但是我执行到:sn8=atof(862631039324107)/1000000-sn16*100000000-sn15*10000000-sn14*1000000-sn13*100000-sn12*10000-sn11*1000-sn10*100-sn9*10;结果就不对,
             本来想用%运算,但是stm32老报错,应该是atof()函数是浮点型,由于值比较长,超出整型值,类型不一致导致的。而且这种方法操作计算太麻烦,用atof(),如果字符串比较短还行,太长了一转换就发现问题了。有没有可以直接把字符串取出对应字符,或取出对应数值的函数?第一次做这种长数据,还不太会处理,求教一下!

最佳答案

查看完整内容[请看2#楼]

杀定了。直接结合 fmod(double x, double y);浮点型取模运算,速度N快。不过要包含这几个头文件。math.h与stdlib.h,stdio.h。否则杀不定。结果让你很无耐。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

95

主题

555

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3359
金钱
3359
注册时间
2016-1-7
在线时间
552 小时
 楼主| 发表于 2017-4-18 09:10:23 | 显示全部楼层
杀定了。直接结合 fmod(double x, double y);浮点型取模运算,速度N快。不过要包含这几个头文件。math.h与stdlib.h,stdio.h。否则杀不定。结果让你很无耐。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 00:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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