找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 286|回复: 10
打印 上一主题 下一主题
收起左侧

stc8H单片机怎么把这种字符转成十进制数呀

[复制链接]
跳转到指定楼层
楼主
ID:881715 发表于 2024-5-2 12:19 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     各位大神中午好,怎么把字符3130303030302E313232,变成十进制数呢?结果是100000.123,我用的是stc8系列单片机,用C语言写,有现成的库函数可以用吗?要实现这个目的编程思路是怎样的呀?共用体要是能实现该怎么用呀?不管用什么方法请大神赐教!最好把代码写一下我学习一下,不胜感激!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2024-5-2 14:51 | 只看该作者

#include<stdio.h>
sscanf();
回复

使用道具 举报

板凳
ID:69038 发表于 2024-5-2 16:06 | 只看该作者
从哪来的数值?单片机怎么会有这么大的数字?80bit.你用什么类型的变量来装它?电脑上的计算器也才64位。。
回复

使用道具 举报

地板
ID:69038 发表于 2024-5-2 16:18 | 只看该作者
你这个是ASC内码吧?0x31 0x30 0x30 0x30 0x30 0x30 0x2E 0x31 0x32 0x32,翻译成字符串就是100000.122
回复

使用道具 举报

5#
ID:881715 发表于 2024-5-2 18:07 来自手机 | 只看该作者
zhuls 发表于 2024-5-2 16:18
你这个是ASC内码吧?0x31 0x30 0x30 0x30 0x30 0x30 0x2E 0x31 0x32 0x32,翻译成字符串就是100000.122

说的对
回复

使用道具 举报

6#
ID:883242 发表于 2024-5-2 19:01 | 只看该作者
  1. #include<stdio.h>
  2. void main(){
  3.         float d;
  4.         sscanf("100000.123","%f",&d);
  5.         printf("%f\r\n",d);
  6. }
复制代码


都提示到这个程度了,你就不会自己查下sscanf怎么用???
回复

使用道具 举报

7#
ID:881715 发表于 2024-5-12 14:14 来自手机 | 只看该作者
Hephaestus 发表于 2024-5-2 19:01
都提示到这个程度了,你就不会自己查下sscanf怎么用???

非常感谢您的指导,获益非浅谢谢
回复

使用道具 举报

8#
ID:1064915 发表于 2024-5-12 14:38 | 只看该作者
zhuls 发表于 2024-5-2 16:18
你这个是ASC内码吧?0x31 0x30 0x30 0x30 0x30 0x30 0x2E 0x31 0x32 0x32,翻译成字符串就是100000.122

水平高
回复

使用道具 举报

9#
ID:705846 发表于 2024-5-12 14:56 | 只看该作者
         我试了一下,提取不成功, 至少time没有提取到。
                str[20]="time 110";
                        sscanf(str,"%s %d",command,&temp);               
                        if(command == "time"){temp=5;}
回复

使用道具 举报

10#
ID:883242 发表于 2024-5-12 20:00 | 只看该作者
samxon 发表于 2024-5-12 14:56
我试了一下,提取不成功, 至少time没有提取到。
                str[20]="time 110";
                        sscanf(str,"%s %d",command ...

这已经不是有咩有提取到的问题了,(command == "time")这个写法就是非法的。
回复

使用道具 举报

11#
ID:879809 发表于 2024-5-17 14:27 | 只看该作者
samxon 发表于 2024-5-12 14:56
我试了一下,提取不成功, 至少time没有提取到。
                str[20]="time 110";
                        sscanf(str,"%s %d",command ...

你没学过strcmp()函数?
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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