二进制转换为十进制 c++
时间: 2024-09-06 11:06:04 浏览: 51
C++实现读入二进制数并转换为十进制输出
5星 · 资源好评率100%
二进制转换为十进制是计算机科学中常见的转换操作。在C++中,可以通过位运算和数学方法将二进制字符串转换为对应的十进制数。下面是一个简单的例子,展示如何将二进制字符串转换为十进制:
```cpp
#include <iostream>
#include <string>
#include <cmath>
int binaryToDecimal(const std::string &binary) {
int decimal = 0;
int base = 1; // 2的0次方
// 从字符串的最后一个字符开始向前遍历
for (int i = binary.length() - 1; i >= 0; --i) {
// 当前位是1,则加上当前的权值
if (binary[i] == '1') {
decimal += base;
}
// 权值翻倍,因为是二进制
base *= 2;
}
return decimal;
}
int main() {
std::string binary;
std::cout << "请输入一个二进制数: ";
std::cin >> binary;
int decimal = binaryToDecimal(binary);
std::cout << "二进制数 " << binary << " 对应的十进制数是 " << decimal << std::endl;
return 0;
}
```
在这个例子中,我们定义了一个`binaryToDecimal`函数,它接受一个二进制字符串作为参数,并返回对应的十进制数。在`main`函数中,我们从用户那里获取二进制字符串,然后调用`binaryToDecimal`函数,并输出结果。
这段代码的核心思想是遍历二进制字符串中的每一个字符,检查它是否是'1',如果是,则将当前位置的二进制权值加到十进制结果中。权值是以2的幂为基础,从字符串的最后一个字符(即最低位)开始,向左每移动一位,权值翻倍。
阅读全文