0

このメソッド内で 16 進値を返そうとしています。どこが間違っているのかわかりません。cout を使用せずに値を 16 進数に入れる方法がわからない。解決策を見つけることができませんでした。入力値は常に 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;
}
4

3 に答える 3

1

stringstreamの代わりにa を使用できますcout

coutデフォルトで作成され、プログラムの標準出力に接続される特別な ostream の 1 つにすぎません。さまざまなものに書き込む他の 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();
}
于 2013-10-03T17:27:03.997 に答える
0

使用するstd::stringstream

std::stringstream ss;
ss<< std::hex << x;
std::string res= ss.str();
于 2013-10-03T17:28:32.893 に答える