【发布时间】: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);
【问题讨论】: