将字符串转换为二进制的最快方法?

问题描述 投票:0回答:4

我想使用字符串类将字符串转换为二进制。一个字符一个字符地执行此操作的快速方法是什么?环形?或者有什么函数可以为我转换吗? 1 和 0 的二进制。

字符串是:

#include <string>
using namespace std;
int main(){
  myString = "Hello World";
}
c++ string binary type-conversion
4个回答
45
投票

使用

std::bitset
会起作用:

#include <string>
#include <bitset>
#include <iostream>
using namespace std;
int main(){
  string myString = "Hello World";
  for (std::size_t i = 0; i < myString.size(); ++i)
  {
      cout << bitset<8>(myString.c_str()[i]) << endl;
  }
}

输出:

01001000
01100101
01101100
01101100
01101111
00100000
01010111
01101111
01110010
01101100
01100100

2
投票

尝试使用此 with 方法。示例:

#include <iostream>
#include <bitset>
using namespace std;

string TextToBinaryString(string words) {
    string binaryString = "";
    for (char& _char : words) {
        binaryString +=bitset<8>(_char).to_string();
    }
    return binaryString;
}
int main()
{
    string testText = "Hello World";
    cout << "Test text: " << testText << "!\n";
    cout << "Convert text to binary: " << TextToBinaryString(testText) << "!\n";

    return 0;
}

结果代码:

Test text: Hello World!                                                                                                                                                                                 
Convert text to binary: 0100100001100101011011000110110001101111001000000101011101101111011100100110110001100100!

0
投票

char * buf = data.c_str; //buf is binary


0
投票

`QString StringToBinary::toBinary(QString s) { QString bin = "";

for (int i = 0; i < s.size(); ++i)
{
    bin += QString::fromStdString(std::bitset<8>(s.at(i).unicode()).to_string());

} q调试()<

return bin;

}`

© www.soinside.com 2019 - 2024. All rights reserved.