近期写了一个工具的时候需要用到对两个16进制字符串相机的实现,查阅了一下,可以简单的使用strtol函数实现,记录一下:
#include#include #include static long addHexString(const char* pStr1, const char* pStr2, char* pRetSum) { if (!pStr1 || !pStr2 || !pRetSum) { return; } long lVal1 = strtol(pStr1, nullptr, 16); long lVal2 = strtol(pStr2, nullptr, 16); long lValRet = lVal1 + lVal2; sprintf(pRetSum, "0x%x", lValRet); return lValRet; }
测试用例:
char szSumAddress[32] = { 0 };
long lRet = addHexString("0x2534", "0xff", szSumAddress);
printf("%s, %ldrn", szSumAddress, lRet);
memset(szSumAddress, 0, sizeof (szSumAddress));
long lRet = addHexString("0x0000", "0x4d871e", szSumAddress);
printf("%s, %ldrn", szSumAddress, lRet);



