现在-这可能有点令人困惑,但我不能想出一个更简单的标题,可以准确地说明我的意思。我有一个字符串,我希望转换为二进制(每个字符到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转换回原版呢?
干杯,乔伊
发布于 2014-05-02 09:46:47
你可以用这样的方法
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;
}发布于 2014-05-02 09:42:42
您可以使用:
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();
}https://stackoverflow.com/questions/23424940
复制相似问题