现在 - 现在这可能有点令人困惑,但我无法想出一个更简单的标题,可以准确地说明我的意思。我有一个字符串,我希望转换为二进制(每个字符到16位宽度二进制)STRING。然后将二进制字符串返回到原始字符串。我将字符串转换为二进制文件"字符串"。
没有问题std::string original = "The lazy fox jumped upon the fancy fence.";
std::stringstream bStream;
for (int i = 0, iMAX = original.size(); i < iMAX; ++i) {
bStream << std::bitset<16>(original[i]);
}
std::string binaryString = bStream.str();
如何将此binaryString转换回原始版本?
干杯, 乔伊
答案 0 :(得分:1)
您可以使用:
std::string originalBack = ""; // result saved there
for (int i = 0; i < binaryString.size() / 16; i++) // take 16 bits each time
{
std::string temp = binaryString.substr(i * 16, 16);
std::bitset<16> temp2(temp);
originalBack += temp2.to_ulong();
}
答案 1 :(得分:1)
您可以使用类似
的内容std::string bin2str(std::string t_)
{
std::stringstream bStream(t_);
std::string ret;
std::bitset<16> t;
while(bStream >> t) {
ret += static_cast<char>(t.to_ulong());
}
return ret;
}