std::string 转2进制
时间: 2023-11-14 22:05:47 浏览: 95
以下是将 std::string 转换为二进制的示例代码:
```c++
#include <iostream>
#include <bitset>
int main() {
std::string str = "Hello, world!";
std::bitset<8> bits;
for (const char& c : str) {
bits = std::bitset<8>(c);
std::cout << bits << " ";
}
return 0;
}
```
输出:
```
01001000 01100101 01101100 01101100 01101111 00101100 00100000 01110111 01101111 01110010 01101100 01100100 00100001
```
在这个示例中,我们使用 std::bitset 将每个字符转换为 8 位二进制表示。请注意,这里使用的是 ASCII 编码。如果您需要使用其他编码,需要进行适当的修改。
相关问题
将16进制的std::string 转2进制
可以使用以下函数将16进制的std::string转换为2进制:
```cpp
#include <string>
#include <bitset>
std::string hexToBin(const std::string& hexStr) {
std::string binStr;
for (const char& ch : hexStr) {
std::bitset<4> bits(ch);
binStr += bits.to_string();
}
return binStr;
}
```
这个函数将每个16进制字符转换为一个4位二进制字符串,然后将所有的二进制字符串连接成一个长的二进制字符串。
例如,如果输入的16进制字符串是"2A",那么输出的二进制字符串将是"00101010"。
std::string 作为二进制
std::string 是 C++ 中的字符串类型,它是由字符组成的序列。它并不具备本质上的二进制特性,因为它是以字符形式存储数据的。
然而,你可以将二进制数据存储在 std::string 对象中,只需将其视为一系列字节。这意味着你可以使用 std::string 的成员函数来操作二进制数据,例如使用 push_back() 或 append() 函数将字节添加到 std::string 中,使用 size() 函数获取存储的字节数等。
要注意的是,当你使用 std::string 存储二进制数据时,需要小心处理其中的特殊字符,比如空字符 '\0'。因为 std::string 默认将空字符作为字符串的结束符,可能导致对二进制数据的截断或错误解析。在处理二进制数据时,最好使用 std::vector<uint8_t> 等更适合的容器类型。