C++字符串到二进制代码/二进制代码到字符串

C++ string to binary code / binary code to string

本文关键字:代码 二进制 字符串 C++      更新时间:2023-10-16

我需要使用第一个字符串的二进制代码将字符串转换为字符串。对于第一部分,我使用了这个:将字符串转换为二进制的最快方法?工作得很好,但我想不出把它写成新字符串的方法。

这是我到目前为止使用的代码:

for (size_t i = 0; i < outputInformations.size(); ++i)
{
    cout << bitset<8>(outputInformations.c_str()[i]);
}

输出:

01110100011001010111001101110100011101010111001101100101011100100110111001100001011011010110010100001010011101000110010101110011011101000111000001100001011100110111001101110111011011110111001001100100

有没有办法将其写入新字符串?所以我有一个名为"binary_outputInformations"的字符串,里面有二进制代码。

你在找这个吗?

  string myString = "Hello World";
  std::string binary_outputInformations;
  for (std::size_t i = 0; i < myString.size(); ++i)
  {
  bitset<8> b(myString.c_str()[i]);
      binary_outputInformations+= b.to_string();
  }
  std::cout<<binary_outputInformations;

输出:

0100100001100101011011000110110001101111001000000101011101101111011100100110110001100100

使用 std::ostringstream(希望是 C++11):

#include <iostream>
#include <sstream>
#include <bitset>
std::string to_binary(const std::string& input)
{
    std::ostringstream oss;
    for(auto c : input) {
        oss << std::bitset<8>(c);
    }
    return oss.str();
}
int main()
{
    std::string outputInformations("testusernamentestpassword");
    std::string binary_outputInformations(to_binary(outputInformations));
    std::cout << binary_outputInformations << std::endl;
}

输出:

01110100011001010111001101110100011101010111001101100101011100100110111001100001011011010110010100001010011101000110010101110011011101000111000001100001011100110111001101110111011011110111001001100100