我正在尝试在此方法中返回十六进制值。不知道我哪里错了。不确定如何在不使用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 :(得分:1)
您可以使用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 :(得分:0)
std::stringstream ss;
ss<< std::hex << x;
std::string res= ss.str();
答案 2 :(得分:0)
如果我理解你的问题,你想要将十六进制值作为字符串返回,对吧?如果是,那么:
std::string intToHexStr (int val)
{
std::stringstream sstr;
sstr << hex << val;
std::string result;
sstr >> result;
return result;
}
希望这有帮助!