在 C 中转换为 ASCII

2023-11-21

使用微控制器 (PIC18F4580),我需要收集数据并将其发送到 SD 卡以供以后分析。它收集的数据的值介于 0 到 1023 或 0x0 到 0x3FF 之间。

所以我需要做的是将 1023 转换为以 10 为基数的 ASCII 值字符串(0x31、0x30、0x32、0x33...)。

我的问题是,我能想到的将数字分开的唯一方法需要大量除法。

char temp[4];
temp[0] = 1023 % 10;
temp[1] = (1023 % 100) / 10;
temp[2] = (1023 % 1000) / 100;
temp[3] = (1023 % 10000) / 1000;

使用此方法,查找 n 位十进制数的 ASCII 值需要进行 2n-1 次除法。有没有一种方法会更快?

最终目标是在 SD 卡上生成一个 .csv 文件,该文件可以快速插入任何笔记本电脑以查看 Excel 中的数据图表。


显而易见的解决方案是not将数据转换为 ASCII,但以二进制格式存储。这样您只需担心数据的字节顺序。如果执行后续分析的系统比您的嵌入式目标强大得多,那么让其处理转换和字节顺序是有意义的。

另一方面,与将数据传输到 SD 卡所需的时间相比,/ 和 % 的执行时间可能微不足道;因此,请确保您正在优化正确的事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C 中转换为 ASCII 的相关文章

随机推荐

  • jquery 检查元素是否有元素

    我正在使用 jquery 1 3 并尝试复制 1 4 has 功能 我需要检查 page 元素是否包含图像 如果不包含 则附加它 是不是类似 var imageid thirdimage if page has imageid undefi
  • Google Maps API:更改标记动画速度

    谷歌地图 API v3目前支持两种类型动画片 for markers 掉落和弹跳 有什么办法我可以speed up弹跳或减速掉落动画 Google Maps API 不支持动画属性或自定义 仅支持像您所说的那样选择 放置 或 弹跳 应该可以
  • 在 MySQL 中将 IP 转换为 Long

    我正在尝试使用ip2country表显示我网站上用户的国旗 我想到的最简单的方法是编写一条 SQL 语句 从会话表中获取用户并查询他们各自的 IP 是否在某个范围内 从而找出他们的国家 国旗 这很简单 但也很危险 因为当有 300 个在线用
  • 上传Excel并将其存储在数据库中?

    我想将Excel文件上传到我们的网页中 然后将相应的数据存储在数据库中 然后我想检索所有数据并以表格格式显示 我有一个代码 但使用该代码无法上传所有 Excel 文件 只能上传单一格式 下面是该函数 但有一些限制 public functi
  • 错误:无法删除该对象,因为在 ObjectStateManager 中未找到该对象

    试图在这里掌握实体框架 但我遇到了一些障碍 我有一个 Get 方法 工作正常并且已经过测试 但我的 Delete 方法不起作用 public static void Delete string name J1Entities db new
  • 如何将宽度设置为“填充父项”的 Android 按钮中的图标和文本居中

    我想要一个 Android 按钮 其中图标 文本居中 我使用 drawableLeft 属性来设置图像 如果按钮的宽度为 wrap content 但我需要拉伸到最大宽度 所以我使用宽度 fill parent 这会将我的图标直接移动到按钮
  • IntelliJ 无法从本地 Maven 存储库加载源

    我正在做一些测试工作 需要使用 JUnit 中我不熟悉的功能 为了更好地理解这些功能 我希望能够在我的项目旁边查看 IntelliJ 内的 JUnit 源代码 本项目使用Maven 我的 pom xml 文件中列出了 jUnit 的以下依赖
  • 在 find + xargs grep 中得到退出代码 123

    这是我的脚本 eval find type f a name h print0 xargs 0 n100 grep f lt echo stdio echo 未找到任何内容 退出代码为 123 如果我稍微修改一下如下 echo stdio
  • 如何获得连续第二高的值?

    我想从数据帧中获取每一行的某个部分的第二高值 我该怎么做呢 我已经尝试过以下代码 但它不起作用 df iloc 5 3 nlargest 2 axis 1 level 2 还有其他方法可以获得这个吗 使用 apply 和 axis 1 您可
  • 读回 sqlite3 中的日期时间

    我正在使用 Python 创建一个带有时间戳列的内存 sqlite3 数据库 当我在查询中对此列使用 min 或 max 时 该列将作为字符串而不是 Python 日期时间对象返回 我读了一篇Stackoverflow 上的上一个问题它为普
  • “eval”和“int”有什么区别

    早些时候我听说eval input a 会自动将字符串转换为 int 但是如果我编码 age eval input enter age 在输入期间我输入 01 这是一个错误 但是当我编码时 age int input enter age 0
  • TFS 2010 新功能 [已关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 有谁知道我可以去哪里获取 TFS 2010 新功能的列
  • 为分组表视图中的每个部分添加阴影

    如图所示 我想向表视图部分添加阴影 就像表视图有 4 个部分一样 表视图中也会有 4 个阴影视图 func numberOfSections in tableView UITableView gt Int 返回 3 func tableVi
  • Backbone.save POST 而不是 PUT

    只是一个简短的问题 拥有模型的新实例并发出model save URL 设置为 api store category Backbone 发出 POST 据我所知 它应该使用 PUT 就像本中提到的那样 PUT 或 POST 故事的其余部分
  • linux/module.h 没有这样的文件或目录

    在我的论文中 我将使用 ARAN 协议创建一个马奈 安装我正在使用的协议本手册 但是第一步 创建trace route 我收到了错误 例如 linux module h No such file or directory linux pro
  • C# 中的finally 块是必须的吗?

    2个条件有什么区别 每次method1和method2运行时 都应该有一个代码块需要运行 在我看来 两种方法是相同的 example method1 void Method1 void try do something catch Exce
  • OnItemLongClickListener 无法在自定义列表视图中工作

    我希望在长时间单击自定义列表视图中的项目后显示上下文菜单 我正在使用动作栏夏洛克 尝试使用 Toast 通知进行调试 我发现长按事件未触发 如何解决这个问题 m vwJokeLayout ListView findViewById R id
  • 是否可以通过 Julia 中的覆盖函数来调用重载函数?

    问题如下 我有一个抽象类型MyAbstract和派生的复合类型MyType1 and MyType2 abstract type MyAbstract end struct MyType1 lt MyAbstract somestuff e
  • 动画剪辑:矩形属性?

    我想为 css 属性设置动画clip rect与 jQuery 的 animate 但无法找到这是否可能在任何地方 试过 img1 animate clip rect 1px 945px 499px 1px 300 没有任何运气 有人知道吗
  • 在 C 中转换为 ASCII

    使用微控制器 PIC18F4580 我需要收集数据并将其发送到 SD 卡以供以后分析 它收集的数据的值介于 0 到 1023 或 0x0 到 0x3FF 之间 所以我需要做的是将 1023 转换为以 10 为基数的 ASCII 值字符串 0