c++ - Arduino:将 uint64_t 转换为字符串

标签 c++ arduino arduino-uno

我有一个可以转换为 uint64_t 的二进制文件。它很大,所以我真的需要一个 uint64_t。我在将它转换为 char 数组时遇到问题。我可以在独立项目中完成,但不能在 Arduino 上完成

我遇到的一些障碍:

  • 我不能使用 sprintf ("%llu"):它给我的结果是 0 和 进一步谷歌搜索显示它并没有真正实现
  • 我不能使用 itoa:是的,itoa 用于较小的数字,但我 处理 uint64_t 似乎达到了极限并且 给我一个否定的结果
  • 我不能使用 String(123456789):我可以将它用于其他类型,例如 int 很长,但我无法传入 uint64_t,因为它不受支持 在参数中
  • 我不能使用long long:搜索它只会给我一个变体 uint64_t(例如使用 sprintf)
  • 我在使用包含在 Visual Studio 中的 VC 时遇到了问题:当我访问我的 项目属性 > 配置属性 > C/C++ > 常规 > Additional Include Drectories 并在路径 "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\" Visual Studio 删除 它。

非常感谢任何输入。

最佳答案

假设您要以十六进制打印“数字”:

  uint64_t number;
  unsigned long long1 = (unsigned long)((number & 0xFFFF0000) >> 16 );
  unsigned long long2 = (unsigned long)((number & 0x0000FFFF));

  String hex = String(long1, HEX) + String(long2, HEX); // six octets

关于c++ - Arduino:将 uint64_t 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27392261/

相关文章:

c++ - 构造函数的函数尝试 block 的处理程序中的返回语句

c++ - 防止 C 整数溢出

c - 使用 Arduino Mega 2560 - RS232 从条码扫描仪读取 Tx

c++ - 如何在 Atmel Studio 7 中为 Arduino 使用 Eigen 库?

python - 如何将字节类对象转换为字符串对象

Arduino 连接字符串和 *char

c++ - 如何在大型 C++ 源代码树中找到所有相互的友元?

c++ - 下载文件,winsock recv() 写入 fstream,文件损坏

c++ - 使用 volatile 标准模板对象的方法

c - 串行方法有什么作用? [阿杜伊诺]