编写一段c++代码,输入一个三位的n进制数值,能够输出其对应的十进制数值
时间: 2024-10-06 13:04:24 浏览: 32
16进制浮点数转换为10进制VC代码
当你有一个三位的n进制数需要转换成十进制数时,可以使用C++编写一个简单的程序,通过逐位相加并乘以对应权重的方式来实现。这里是一个基本的例子:
```cpp
#include <iostream>
#include <string>
// 函数:将n进制数转换为十进制数
int convertBaseToDecimal(std::string binaryString, int base) {
int decimalValue = 0;
for (int i = binaryString.size() - 1; i >= 0; i--) {
if (binaryString[i] == '1') {
decimalValue += static_cast<int>(base) * pow(base, i);
}
}
return decimalValue;
}
int main() {
std::string nBinaryNumber;
int n;
// 输入n进制数
std::cout << "请输入一个三位的n进制数:";
std::cin >> nBinaryNumber;
// 确保是三位数,并且只包含0-1
while (nBinaryNumber.length() != 3 || (nBinaryNumber.find_first_not_of("01") != std::string::npos)) {
std::cout << "无效的输入,请重新输入一个三位的n进制数:";
std::cin >> nBinaryNumber;
}
// 获取基数,例如二进制就是2,八进制就是8等
std::cout << "请输入该数的基数(如2表示二进制,8表示八进制):";
std::cin >> n;
// 转换并输出结果
int decimalResult = convertBaseToDecimal(nBinaryNumber, n);
std::cout << "该n进制数转为十进制的结果是:" << decimalResult << std::endl;
return 0;
}
```
在这个程序中,`convertBaseToDecimal`函数负责实际的转换工作,而`main`函数则处理用户的输入并显示结果。
阅读全文