C++把二进制数转变为十进制数
时间: 2024-11-21 13:26:47 浏览: 16
在C++中,将二进制数转换为十进制数可以使用内置函数`std::stoi()`或者手动通过循环逐位相加的方式来实现。以下是两种常见的方式:
1. 使用内置函数 `std::stoi()`:
```cpp
#include <string>
#include <iostream>
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的幂)累加到结果上。
阅读全文