string convert转二进制
时间: 2023-07-10 17:41:27 浏览: 45
你可以使用bitset库中的函数进行转换。例如,以下代码将字符串s转换为二进制表示:
```
#include <bitset>
#include <string>
std::string s = "Hello World!";
std::bitset<8> b;
std::string binary = "";
for (char c : s) {
b = std::bitset<8>(c);
binary += b.to_string();
}
std::cout << binary << std::endl;
```
在上面的代码中,我们首先定义了一个字符串`s`。然后,我们使用`std::bitset`创建一个大小为8的位集,每个字符都可以用8个二进制位来表示。接下来,我们使用一个循环遍历字符串中的每个字符,并将其转换为二进制表示,然后将结果附加到二进制字符串`binary`中。最后,我们输出二进制字符串。
相关问题
用string convert函数十进制转二进制
可以使用 `std::bitset` 标准库中的 `to_string` 函数将十进制数转换为二进制数。以下是一个示例代码:
```
#include <iostream>
#include <bitset>
#include <string>
using namespace std;
int main() {
int decimalNum = 10;
string binary = bitset<8>(decimalNum).to_string();
cout << binary << endl;
return 0;
}
```
在这个示例代码中,我们首先定义了一个整数 `decimalNum`,它是要被转换为二进制数的十进制数。然后,我们使用 `bitset<8>` 创建一个大小为 8 的位集,它可以存储二进制数。接下来,我们使用 `to_string()` 函数将位集转换为二进制字符串,并将其存储在字符串 `binary` 中。最后,我们输出二进制字符串。
需要注意的是,`bitset` 的大小应该足够大,以便容纳转换后的二进制数。在这个例子中,我们使用了大小为 8 的位集,因此转换后的二进制数最多只能有 8 位。如果需要转换的二进制数超过了大小为 8 的位集的范围,就需要使用更大的位集。
用string convert递归函数十进制转二进制
以下是使用递归函数将十进制数转换为二进制数的示例代码:
```
#include <iostream>
#include <string>
using namespace std;
string decimalToBinary(int decimalNum) {
if (decimalNum == 0) {
return "0";
} else if (decimalNum == 1) {
return "1";
} else {
return decimalToBinary(decimalNum / 2) + to_string(decimalNum % 2);
}
}
int main() {
int decimalNum = 10;
string binary = decimalToBinary(decimalNum);
cout << binary << endl;
return 0;
}
```
在这个示例代码中,我们定义了一个名为 `decimalToBinary` 的递归函数,它接受一个整数 `decimalNum` 作为参数,并返回一个二进制字符串。函数中的递归终止条件是当 `decimalNum` 为 0 或 1 时,直接返回相应的字符串 "0" 或 "1"。递归步骤中,我们将 `decimalNum` 除以 2 并取余数,得到当前最低位的二进制数,并将其转换为字符串。然后,我们递归调用 `decimalToBinary` 函数,将 `decimalNum` 除以 2 的结果作为参数,并将当前最低位的二进制数字符串与递归调用的结果相加,得到最终的二进制字符串。
需要注意的是,递归函数的效率可能不如迭代函数高,因为每次递归调用都需要创建一个新的函数栈帧。因此,在实际应用中,我们应该根据具体情况选择使用递归函数还是迭代函数。