我是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);
答案 0 :(得分:2)
您可以使用std::ostringstream
和std::hex
:
std::ostringstream oss;
oss << std::hex << (int)MyByte;
获取字符串使用
std::string MyString = oss.str();