C++ 实现:超简单的不同进制数据转换(含代码及详细解释)
```cpp #include <iostream> #include <string> #include <algorithm> // 将 n 进制数转换为十进制数 long long toDecimal(const std::string& num, int n) { long long decimal = 0; for (char digit : num) { if (digit >= '0' && digit <= '9') { decimal = decimal * n + (digit - '0'); } else { decimal = decimal * n + (digit - 'A' + 10); } } return decimal; } // 将十进制数转换为 m 进制数 std::string toBaseM(long long decimal, int m) { std::string result = ""; while (decimal > 0) { int remainder = decimal % m; if (remainder < 10) { result += (char)(remainder + '0'); } else { result += (char)(remainder - 10 + 'A'); } decimal /= m; } // 如果结果为空,说明输入为 0 if (result.empty()) { result = "0"; } // 反转结果字符串 std::reverse(result.begin(), result.end()); return result; } int main() { int n, m; std::string num; // 读取输入 std::cin >> n; std::cin >> num; std::cin >> m; // 先将 n 进制数转换为十进制数 long long decimal = toDecimal(num, n); // 再将十进制数转换为 m 进制数 std::string result = toBaseM(decimal, m); // 输出结果 std::cout << result << std::endl; return 0; } ``` 代码解释: 1. `toDecimal` 函数:将 `n` 进制数转换为十进制数。遍历 `n` 进制数的每一位,根据字符的值计算十进制数。如果字符是数字,则直接转换;如果是字母,则将其转换为对应的数值。 2. `toBaseM` 函数:将十进制数转换为 `m` 进制数。通过不断取模和整除操作,将十进制数转换为 `m` 进制数的每一位,并存储在结果字符串中。最后反转结果字符串得到正确的顺序。 3. `main` 函数:读取输入的 `n`、`n` 进制数和 `m`,调用 `toDecimal` 函数将 `n` 进制数转换为十进制数,再调用 `toBaseM` 函数将十进制数转换为 `m` 进制数,最后输出结果。 复杂度分析: - 时间复杂度:$O(k)$,其中 $k$ 是输入的 `n` 进制数的位数。 - 空间复杂度:$O(k)$,主要用于存储转换后的 `m` 进制数。 ######[AI问答 | 692点数解答 | 2025-12-03 19:08:50]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)350
- Java代码实现从JSON数据中提取ID,涉及“数据”与“项目 - 知识库”结构(字节豆包 | 603点数解答 | 2025-04-15 22:48:51)244
- C++ 实现:计算一排鹅与最高、最矮鹅的身高差及代码详解(字节豆包 | 549点数解答 | 2025-11-16 20:19:06)88
- 编程揭秘:计算 𝑛! 在 𝑃 进制下末尾零个数的方法与代码实现(DeepSeek | 549点数解答 | 2026-01-11 17:49:54)51
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)248
- 深入解析格雷码生成算法:递归求解与代码实现(DeepSeek | 443点数解答 | 2026-01-05 12:21:49)54
- 深入探究:n 位格雷码中编号 k 二进制串的求解算法与实现(DeepSeek | 726点数解答 | 2026-01-13 12:31:37)55
- 探寻数组中最长摆动子序列长度:思路剖析与代码优化(GPT | 758点数解答 | 2024-12-23 23:18:29)274
- 独家剖析:求解数组最长摆动子序列长度的代码实现与改进建议(GPT | 350点数解答 | 2024-12-23 23:20:54)271
- 求解 1 至 n 内第 k 大孤独数:质数与余数的巧妙探寻(字节豆包 | 298点数解答 | 2025-11-10 20:01:57)162
- 巧判小朋友同桌意愿:满足需求还是无解难题?(字节豆包 | 599点数解答 | 2025-11-16 20:06:12)73
- 巧用代码判断:能否让 2n 个小朋友都拥有满意同桌?(字节豆包 | 445点数解答 | 2025-11-16 20:07:02)83