C++把二进制数转变为十进制数
时间: 2024-11-21 13:26:47 浏览: 29
在C++中,将二进制数转换为十进制数可以使用内置函数std::stoi()
或者手动通过循环逐位相加的方式来实现。以下是两种常见的方式:
- 使用内置函数
std::stoi()
: ```cpp #include#include
int binaryToDecimal(std::string binaryStr) { return std::stoi(binaryStr, nullptr, 2); }
int main() { std::string binary = "1010"; int decimal = binaryToDecimal(binary); std::cout << "Binary " << binary << " is equivalent to decimal " << decimal << std::endl; return 0; }
在这个例子中,`std::stoi()`函数接受一个字符串、一个指向错误位置的指针(这里设置为nullptr),以及一个基数(这里是2,表示二进制)。
2. 手动逐位相加:
```cpp
void binaryToDecimalManually(char binary[], int length) {
int decimal = 0;
for (int i = 0; i < length; ++i) {
if (binary[i] == '1') {
decimal += pow(2, length - i - 1);
}
}
std::cout << "Binary " << std::string(binary, length) << " is equivalent to decimal " << decimal << std::endl;
}
int main() {
char binary[] = {'1', '0', '1', '0'};
binaryToDecimalManually(binary, sizeof(binary));
return 0;
}
这个方法从右向左遍历二进制字符串,每遇到一个'1'就将其对应的十进制值(2的幂)累加到结果上。
相关推荐


















