我有一个可以转换为 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/