c++ - 将 4 字节十六进制字符串转换为整数

标签 c++ mfc hex strtol

我正在尝试在 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/

相关文章:

Java 基本十六进制编辑器 - 编程作业

c++ - Int 到 Base 2 & 8 优化

c++ - Microsoft Visual Studio 2013 链接错误 1104

c++ - wcstombs_s 无法正常工作

c++ - 如何在 C++ 中限制日志大小?

python - Windows 7 : how to bring a window to the front no matter what other window has focus?

十六进制转二进制

c++ - 以十进制数的二进制格式计算 1 的个数

c++ - QWebView 在 Ubuntu 13.10 上不工作

c# - 如何将 gi-normous 整数(字符串格式)转换为十六进制格式? (C#)