【问题标题】:How to return a hex value after converting it from a string从字符串转换后如何返回十六进制值
【发布时间】:2013-10-03 17:21:19
【问题描述】:

我试图在这个方法中返回一个十六进制值。不知道我哪里错了。不知道如何在不使用 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;
}

【问题讨论】:

  • 你可以使用字符串流。

标签: c++ binary hex strtol


【解决方案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();
}

【讨论】:

    【解决方案2】:

    使用std::stringstream

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

    【讨论】:

      【解决方案3】:

      如果我理解你的问题,你想返回一个十六进制值作为字符串,rigt?如果是,那么:

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

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 2017-06-16
        • 1970-01-01
        • 1970-01-01
        • 2018-01-22
        • 2019-07-27
        • 1970-01-01
        • 2013-02-07
        • 2015-02-06
        • 1970-01-01
        相关资源
        最近更新 更多