#c #mfc #hex #data-conversion #unsigned-long-long-int
#c #mfc #шестнадцатеричная #преобразование данных #unsigned-long-long-int
Вопрос:
У меня есть следующее шестнадцатеричное значение
CString str;
str = T("FFF000");
Как преобразовать это в в unsigned long
?
Ответ №1:
Вы можете использовать strtol
функцию, которая работает с обычными строками C. Он преобразует строку в длинную, используя указанную базу:
long l = strtol(str, NULL, 16);
подробности и хороший пример:
http://www.cplusplus.com/reference/clibrary/cstdlib/strtol /
Комментарии:
1. Я думаю, что он действительно может захотеть
stroul
илиstoul
поскольку он хочетunsigned long
.
Ответ №2:
#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;
}
Комментарии:
1. Разве это не должно быть
std::setbase(16)
илиstd::hex
?