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

How can I obtain a string that display the Hex value of a byte?

本文关键字:十六进制 字节 字符串 显示 何获取 获取      更新时间:2023-10-16

我是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);
您可以使用

std::ostringstreamstd::hex

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

若要获取字符串,请使用

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