如何将十六进制字符串转换为unsigned long?

Chr*_*_vr 4 c++ mfc hex data-conversion unsigned-long-long-int

我有以下十六进制值

CString str;
str = T("FFF000");
Run Code Online (Sandbox Code Playgroud)

如何将此转换为unsigned long

Ada*_*dam 11

您可以使用strtol适用于常规C字符串的函数.它使用指定的基础将字符串转换为long:

long l = strtol(str, NULL, 16);
Run Code Online (Sandbox Code Playgroud)

详细信息和良好示例:http: //www.cplusplus.com/reference/clibrary/cstdlib/strtol/


hid*_*yat 9

#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;
}
Run Code Online (Sandbox Code Playgroud)