Как вернуть шестнадцатеричное значение после преобразования его из строки

Я пытаюсь вернуть шестнадцатеричное значение внутри этого метода. не уверен, где я иду не так. не уверен, как поместить значение в гекс без использования cout. не смогли найти решение. Входное значение всегда будет длиной 32 бита

это как я хочу вернуться hex << x но это не вариант.

string StringToHex (myInstruction* RealList, int Pos)
{
string result = "11111111110000000000110011001100";
unsigned long x = strtoul(result.c_str(), &pEnd, 2);
cout<< hex << x<<endl;
return  x;
}

0

Решение

Вы можете использовать stringstream вместо cout,

cout это только один специальный ostream, который создается по умолчанию и подключается к стандартному выводу программы. Вы можете создавать другие объекты ostream, которые пишут в разные вещи. std::stringstream пишет в std::string внутри него.

#include <sstream>

std::string to_hex() {
unsigned int x = 256;

std::stringstream s;
s << std::hex << x;
return s.str();
}
1

Другие решения

использование std::stringstream

std::stringstream ss;
ss<< std::hex << x;
std::string res= ss.str();
0

Если я понимаю ваш квестинон, вы хотите вернуть шестнадцатеричное значение в виде строки, верно? Если так, то:

std::string intToHexStr (int val)
{
std::stringstream sstr;
sstr << hex << val;
std::string result;
sstr >> result;
return result;
}

Надеюсь это поможет!

0
По вопросам рекламы [email protected]