Я пытаюсь вернуть шестнадцатеричное значение внутри этого метода. не уверен, где я иду не так. не уверен, как поместить значение в гекс без использования 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;
}
Вы можете использовать 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();
}
использование std::stringstream
std::stringstream ss;
ss<< std::hex << x;
std::string res= ss.str();
Если я понимаю ваш квестинон, вы хотите вернуть шестнадцатеричное значение в виде строки, верно? Если так, то:
std::string intToHexStr (int val)
{
std::stringstream sstr;
sstr << hex << val;
std::string result;
sstr >> result;
return result;
}
Надеюсь это поможет!