设计算法把10进制整数转换为二至九进制之间的任意进制输出。用C++
时间: 2024-09-29 14:14:15 浏览: 51
在C++中,将十进制整数转换为其他进制(如二至九进制),你可以使用循环和取余操作来逐步分解原数字并生成目标进制下的每一位。以下是一个基本的函数示例,它接受一个十进制整数作为输入,并返回指定基数的字符串表示:
```cpp
#include <iostream>
#include <string>
std::string convertToBase(int decimal, int base) {
if (decimal == 0)
return "0";
std::string result;
while (decimal > 0) {
int remainder = decimal % base;
// 将字符添加到结果前面
result = to_string(remainder) + result;
decimal /= base;
}
return result;
}
int main() {
int decimal_num = 42; // 示例十进制数
int target_base = 7; // 目标进制
std::string converted_num = convertToBase(decimal_num, target_base);
std::cout << "十进制 " << decimal_num << " 转换成 " << target_base << " 进制为: " << converted_num << std::endl;
return 0;
}
```
在这个例子中,`convertToBase()` 函数首先检查输入是否为0,如果是则直接返回"0"。然后使用循环迭代,每次取 `decimal` 除以 `base` 的余数,将这个余数转换成相应的字符(对于二至九进制,可以对应 '0', '1', '2', ..., '6'),并将字符添加到结果字符串的开头。
阅读全文