【问题标题】:Fastest way to Convert String to Binary?将字符串转换为二进制的最快方法?
【发布时间】:2012-04-17 02:09:55
【问题描述】:

我想使用字符串类将字符串转换为二进制。逐个字符地做这个字符的快速方法是什么。环形?还是有一些功能可以为我转换? 1 和 0 的二进制。

一个字符串是:

#include <string>
using namespace std;
int main(){
  myString = "Hello World";
}

【问题讨论】:

  • @Serdalis 我真的不知道那里发生了什么。
  • 您希望看到“Hello, world”的输出是什么? 11*8 01 字符代表字符串字符的二进制 ASCII 码,还是别的什么?
  • 那么您尝试了什么-您拥有的代码甚至无法编译...

标签: c++ string binary type-conversion


【解决方案1】:

使用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

【讨论】:

  • 或者只是bitset&lt;8&gt;(myString[i])
  • 所以 bitset 会给你 base-256,如果你想说 base-255 或 base-257,只需添加 -1 和 +1?
  • 如果我们想对输出求和,这样如果在 MSB 端的和末尾有一个溢出位(0 或 1),那么它应该被添加到总和的最终答案中再次。我们该怎么做?
【解决方案2】:

尝试使用 this 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!

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 通过解释您的答案如何解决相关问题来添加一些上下文,而不是发布仅代码的答案。
    猜你喜欢
    • 2017-03-02
    • 2010-12-13
    • 2020-11-17
    • 1970-01-01
    • 2012-10-26
    • 2021-02-24
    • 2014-06-08
    相关资源
    最近更新 更多