我想使用字符串类将一个字符串逐个字符地转换为二进制。有什么快速方法可以实现这一点吗?需要使用循环吗?还是有一些函数可以直接帮我完成转换?转换结果应该是1和0的二进制。
所谓字符串即为:
#include <string>
using namespace std;
int main(){
myString = "Hello World";
}
我想使用字符串类将一个字符串逐个字符地转换为二进制。有什么快速方法可以实现这一点吗?需要使用循环吗?还是有一些函数可以直接帮我完成转换?转换结果应该是1和0的二进制。
所谓字符串即为:
#include <string>
using namespace std;
int main(){
myString = "Hello World";
}
可以使用 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<8>(myString[i])
。 - Jesse Good#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!
char * buf = data.c_str; //buf是二进制
0
或1
字符,代表字符串字符的二进制ASCII码,还是其他什么? - Sergey Kalinichenko