C++ 如何将十六进制字符串转换为无符号长字符串?

C++ 如何将十六进制字符串转换为无符号长字符串?,c++,mfc,hex,data-conversion,unsigned-long-long-int,C++,Mfc,Hex,Data Conversion,Unsigned Long Long Int,我有以下十六进制值 CString str; str = T("FFF000"); 如何将其转换为无符号长?您可以使用strtol函数,该函数适用于常规C字符串。它使用指定的基将字符串转换为长字符串: long l = strtol(str, NULL, 16); 细节和好例子: #包括 #包括 int main() { std::字符串s(“0xFFF000”); 无符号长值; 标准:istringstream iss; iss>>标准::十六进制>>值; std::cout不应该是std

我有以下十六进制值

CString str;
str = T("FFF000");

如何将其转换为
无符号长

您可以使用
strtol
函数,该函数适用于常规C字符串。它使用指定的基将字符串转换为长字符串:

long l = strtol(str, NULL, 16);
细节和好例子:
#包括
#包括
int main()
{
std::字符串s(“0xFFF000”);
无符号长值;
标准:istringstream iss;
iss>>标准::十六进制>>值;

std::cout不应该是
std::setbase(16)
std::hex
#include <sstream>
#include <iostream>

int main()
{

    std::string s("0xFFF000");
    unsigned long value;
    std::istringstream iss(s);
    iss >> std::hex >> value;
    std::cout << value << std::endl;

    return 0;
}