Как преобразовать шестнадцатеричную строку в длинную без знака? - PullRequest
4 голосов
/ 09 мая 2011

У меня есть следующее шестнадцатеричное значение

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

Как преобразовать это в unsigned long?

Ответы [ 2 ]

11 голосов
/ 09 мая 2011

Вы можете использовать функцию strtol, которая работает на обычных C-строках.Он преобразует строку в long, используя указанную базу:

long l = strtol(str, NULL, 16);

подробности и хороший пример: http://www.cplusplus.com/reference/clibrary/cstdlib/strtol/

9 голосов
/ 09 мая 2011
#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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...