如何获取显示字节的十六进制值的字符串?

时间:2016-02-01 15:45:06

标签: c++ string byte tostring

我是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);

1 个答案:

答案 0 :(得分:2)

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

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

获取字符串使用

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