C++ 实现:轻松将正整数 n 转换为 m 进制(含代码及详细说明)
# C++实现正整数n转换成m进制 以下是一个将正整数n转换为m进制的C++实现: ```cpp #include <iostream> #include <string> #include <algorithm> std::string convertToBase(int n, int m) { // 处理特殊情况:n为0或m不在有效范围内 if (n == 0) return "0"; if (m < 2 || m > 36) { throw std::invalid_argument("基数m必须在2到36之间"); } std::string result; while (n > 0) { int remainder = n % m; // 将余数转换为对应的字符 char digit = (remainder < 10) ? (remainder + '0') : (remainder - 10 + 'A'); result.push_back(digit); n /= m; } // 反转字符串得到正确顺序 std::reverse(result.begin(), result.end()); return result; } int main() { try { int number, base; std::cout << "请输入一个正整数: "; std::cin >> number; std::cout << "请输入目标进制(2-36): "; std::cin >> base; if (number < 0) { std::cout << "请输入正整数" << std::endl; return 1; } std::string converted = convertToBase(number, base); std::cout << number << " 的 " << base << " 进制表示为: " << converted << std::endl; } catch (const std::exception& e) { std::cerr << "错误: " << e.what() << std::endl; return 1; } return 0; } ``` ## 代码说明: 1. 函数`convertToBase`接受两个参数:要转换的正整数`n`和目标进制`m` 2. 使用短除法不断除以m并记录余数 3. 余数转换为对应的字符(0-9或A-Z,支持最高36进制) 4. 最后反转字符串得到正确顺序 ## 使用示例: - 输入:n=42, m=2 → 输出:101010 - 输入:n=255, m=16 → 输出:FF - 输入:n=1023, m=8 → 输出:1777 ## 需要注意的逻辑点: 1. 输入验证:确保n是正整数,m在2-36范围内 2. 特殊字符处理:余数大于9时需要转换为字母A-Z 3. 结果顺序:余数是从低位到高位计算的,需要反转字符串 ######[AI写代码神器 | 572点数解答 | 2025-04-19 16:56:22]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)368
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)262
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)338
- C++ 实现查找指定数字在正整数序列中的位置(字节豆包 | 398点数解答 | 2026-04-11 13:08:06)23
- C++ 实现统计指定数字在数组中出现的次数(字节豆包 | 377点数解答 | 2026-04-11 13:09:11)23
- 探秘 19 进制:揭开 X 星球记数方式的神秘面纱(GPT | 268点数解答 | 2024-11-17 09:04:06)137
- Python 实现:轻松将十进制数转换为 2 - 36 进制数(字节豆包 | 509点数解答 | 2026-01-02 19:40:44)65
- Python 实现:将十进制整数高效转换为 x 进制的详细解析(字节豆包 | 499点数解答 | 2026-01-10 20:39:11)45
- 揭秘!十进制数到负进制数的转换程序及代码详解(DeepSeek | 490点数解答 | 2026-01-20 17:31:14)44
- 核桃星球加法的C++实现及开发建议(字节豆包 | 705点数解答 | 2026-04-06 21:10:23)18
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)492
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)377