正如标题所写,我需要将一个包含 8 个字节(代表 64 位 int)的 (char) 数组转换为字符串。我在 NEC78K0R(16 位单片机)上使用 C 代码。我正在使用 IAR 嵌入式工作台 IDE。
我的想法是将它们以 64 位 int 类型(如 f.x long long 或 int64_t(来自 stdint.h))进行 OR 运算,然后使用类似 sprintf 的方法将其转换为字符串。
然而,每当我使用任何标准的 64 位整数类型时,编译器将开始吐出诸如“'long long' 类型不存在'”之类的错误。
任何帮助将不胜感激。
最佳答案
如果 char 数组引用了一个 8 字节的内存块,它实际上是一个真正的 64 位整数,并且您的编译器支持 int64_t
,您可以只转换和取消引用.
int64_t convert(const char* input)
{
return *((int64_t*)input);
}
如果平台支持 64 位数据类型,sprintf
也将通过 %L
格式说明符支持它。
关于c - 如何将包含 8 个字节(表示 64 位 int)的(char)数组转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16671900/