这个问题可能看起来很傻,但请指导我 我有一个将长数据转换为字符数组的函数
void ConvertLongToChar(char *pSrc, char *pDest)
{
pDest[0] = pSrc[0];
pDest[1] = pSrc[1];
pDest[2] = pSrc[2];
pDest[3] = pSrc[3];
}
我这样调用上面的函数
long lTemp = (long) (fRxPower * 1000);
ConvertLongToChar ((char *)&lTemp, pBuffer);
效果很好。 我需要一个类似的功能来扭转这个过程。将 char 数组转换为 long。 我不能使用 atol 或类似的功能。
最佳答案
你可以这样做:
union {
unsigned char c[4];
long l;
} conv;
conv.l = 0xABC;
并访问c[0] c[1] c[2] c[3]
。这很好,因为它不浪费内存,而且速度非常快,因为除了初始值之外没有移位或任何赋值,而且它可以双向工作。
关于在 C 中将 Char 数组转换为 Long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6687467/