我正在尝试在 MFC 项目中将十六进制字符串转换为整数。 代码是这样的:
CString sMask = "0xFFFFFFE0";
char* pMaskBuffer = sMask.GetBuffer(sMask.GetLength());
sMask.ReleaseBuffer();
char * p = NULL;
long iMask = strtol(pMaskBuffer, &p, 16);
当 sMask 变量很小时,代码工作正常。但是 4 字节掩码生成了奇怪的值。我得到的不是 4294967264,而是 2147483647。如何克服这个问题。请帮忙。
最佳答案
那是因为strtol返回long use this
unsigned long iMask = strtoul(pMaskBuffer, &p, 16);
关于c++ - 将 4 字节十六进制字符串转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19700880/