【问题标题】:How can I obtain a string that display the Hex value of a byte? [duplicate]如何获取显示字节的十六进制值的字符串? [复制]
【发布时间】:2016-02-01 15:45:06
【问题描述】:

我是 C++ 新手,遇到一个简单而愚蠢的问题,希望有人能帮助我! 我有一个字节,例如:

uint8_t MyByte = 0x0C;

我想把它转换成对应于十六进制 MyByte 值的字符串,在本例中为 "0C"。 如果我尝试:

std::string MyString = std::to_string(MyByte);

我会得到:MyString = "12";我想获得 MyString = "0C" ,即相应的十六进制值。 有可能吗?

谢谢!

编辑: 我知道在提供的链接上有一个类似的问题,但它不适合我。事实上,如果我尝试:

std::stringstream stream;
stream << std::hex << MyByte;
std::string MyString( stream.str() );

MyString 没有按预期显示。

我刚刚尝试了这个解决方案,它似乎正在工作:

std::stringstream stream;
stream << std::hex << (int)MyByte; // cast needed
std::string MyString( stream.str() );
std::transform(strBcc.begin(), strBcc.end(),strBcc.begin(), ::toupper);

【问题讨论】:

    标签: c++ string byte tostring


    【解决方案1】:

    您可以使用std::ostringstreamstd::hex

    std::ostringstream oss;
    oss << std::hex << (int)MyByte;
    

    获取字符串使用

    std::string MyString = oss.str();
    

    【讨论】:

    • 谢谢。这样,我得到了MyString = "0c"。有没有办法获得“0C”呢?
    猜你喜欢
    • 2019-07-27
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多