已知一个只包含 0 和 1 的二进制数,长度不大于 10 ,将其转换为十进制并输出。用c++
时间: 2024-09-11 15:18:36 浏览: 60
在C++中,将一个二进制数转换为十进制数,可以通过遍历二进制数的每一位,然后根据其位权(2的幂次)计算出对应的十进制值。以下是一个简单的C++函数示例,用于将不大于10位的二进制字符串转换为十进制数:
```cpp
#include <iostream>
#include <string>
// 将二进制字符串转换为十进制整数的函数
int binaryToDecimal(const std::string &binary) {
int decimal = 0;
int len = binary.length();
for (int i = 0; i < len; ++i) {
if (binary[i] == '1') {
decimal += (1 << (len - i - 1));
}
// 如果当前位是'0',则不需要进行任何操作,因为默认加上的值是0
}
return decimal;
}
int main() {
std::string binaryInput;
std::cout << "请输入一个长度不大于10的二进制数: ";
std::cin >> binaryInput;
// 检查输入是否合法
if (binaryInput.length() > 10 || binaryInput.find_first_not_of("01") != std::string::npos) {
std::cout << "输入的不是有效的二进制数或长度超过10位。" << std::endl;
return 1;
}
int decimalNumber = binaryToDecimal(binaryInput);
std::cout << "转换成十进制数为: " << decimalNumber << std::endl;
return 0;
}
```
在这个程序中,`binaryToDecimal`函数接收一个字符串类型的二进制数,然后使用位移操作符`<<`来计算每一位的十进制值,并累加到`decimal`变量中。
阅读全文