c++二进制字符串转为整数
时间: 2024-10-10 20:11:21 浏览: 58
在C++中,将二进制字符串转换为整数通常涉及到使用`std::bitset`或手动解析字符串并逐位计算。以下是两个简单的方法:
1. 使用`std::bitset`和`std::stoi`结合:
```cpp
#include <bitset>
#include <string>
int binaryToDecimal(const std::string& binaryStr) {
// 创建一个bitset表示二进制串
std::bitset<32> bitSet(binaryStr);
// 将bitset转换为十进制整数
int decimal = bitSet.to_ulong();
return decimal;
}
```
2. 手动解析(适用于较简单的二进制字符串,例如非前导零的情况):
```cpp
int binaryToDecimalManually(const std::string& binaryStr) {
int decimal = 0;
for (char ch : binaryStr) {
if (ch == '1') {
decimal = decimal * 2 + 1;
} else if (ch == '0') {
decimal = decimal * 2;
} else {
// 处理非法字符
throw std::invalid_argument("Invalid binary string");
}
}
return decimal;
}
```
阅读全文